Allow Gitea to run as different USER in Docker (#3961)

* If using a different $USER then rename git user

* Chown based on $USER env

* Target only one part of passwd

* su-exec based on $USER

not a hardcoded value
tokarchuk/v1.17
techknowlogick 7 years ago committed by Lunny Xiao
parent 4ceb92f311
commit ecfc401eaa
  1. 2
      docker/etc/s6/gitea/run
  2. 2
      docker/etc/s6/gitea/setup
  3. 7
      docker/usr/bin/entrypoint

@ -2,5 +2,5 @@
[[ -f ./setup ]] && source ./setup [[ -f ./setup ]] && source ./setup
pushd /app/gitea > /dev/null pushd /app/gitea > /dev/null
exec su-exec git /app/gitea/gitea web exec su-exec $USER /app/gitea/gitea web
popd popd

@ -39,5 +39,5 @@ if [ ! -f /data/gitea/conf/app.ini ]; then
envsubst < /etc/templates/app.ini > /data/gitea/conf/app.ini envsubst < /etc/templates/app.ini > /data/gitea/conf/app.ini
fi fi
chown -R git:git /data/gitea /app/gitea /data/git chown -R ${USER}:git /data/gitea /app/gitea /data/git
chmod 0755 /data/gitea /app/gitea /data/git chmod 0755 /data/gitea /app/gitea /data/git

@ -1,5 +1,12 @@
#!/bin/sh #!/bin/sh
if [ "${USER}" != "git" ]; then
# rename user
sed -i -e "s/^git\:/${USER}\:/g" /etc/passwd
# switch sshd config to different user
sed -i -e "s/AllowUsers git/AllowUsers ${USER}/g" /etc/ssh/sshd_config
fi
## Change GID for USER? ## Change GID for USER?
if [ -n "${USER_GID}" ] && [ "${USER_GID}" != "`id -g ${USER}`" ]; then if [ -n "${USER_GID}" ] && [ "${USER_GID}" != "`id -g ${USER}`" ]; then
sed -i -e "s/^${USER}:\([^:]*\):[0-9]*/${USER}:\1:${USER_GID}/" /etc/group sed -i -e "s/^${USER}:\([^:]*\):[0-9]*/${USER}:\1:${USER_GID}/" /etc/group

Loading…
Cancel
Save