From 5753d4cb87388c247e91eaf3ce641d309a45e760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E1=B4=9C=C9=B4=E1=B4=8B=C9=B4=E1=B4=A1=E1=B4=8F=C9=B4?= Date: Fri, 10 Apr 2020 22:58:55 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"docker:=20fix=20the=20bug=20of=20usin?= =?UTF-8?q?g=20root=20account=20to=20create=20`/d=E2=80=A6=20(#6085)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit f3b05961aae82fa3e19c47f03c78974cf793fda3. --- docker/s6/gogs/run | 1 + docker/s6/gogs/setup | 15 +++++++++++++-- docker/start.sh | 7 +++---- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/docker/s6/gogs/run b/docker/s6/gogs/run index edcf49cec..1aa70eb41 100755 --- a/docker/s6/gogs/run +++ b/docker/s6/gogs/run @@ -4,4 +4,5 @@ if test -f ./setup; then source ./setup fi +export USER=git exec gosu $USER /app/gogs/gogs web diff --git a/docker/s6/gogs/setup b/docker/s6/gogs/setup index f6e4bb70d..8a95422ae 100755 --- a/docker/s6/gogs/setup +++ b/docker/s6/gogs/setup @@ -1,12 +1,12 @@ #!/bin/sh if ! test -d ~git/.ssh; then - exec gosu $USER mkdir -p ~git/.ssh + mkdir -p ~git/.ssh chmod 700 ~git/.ssh fi if ! test -f ~git/.ssh/environment; then - exec gosu $USER echo "GOGS_CUSTOM=${GOGS_CUSTOM}" > ~git/.ssh/environment + echo "GOGS_CUSTOM=${GOGS_CUSTOM}" > ~git/.ssh/environment chmod 600 ~git/.ssh/environment fi @@ -19,4 +19,15 @@ ln -sfn /data/gogs/data ./data # Backward Compatibility with Gogs Container v0.6.15 ln -sfn /data/git /home/git +# Only chown for the first time, owner of '/data' is 'git' inside Docker after installation +if [ $(stat -c '%U' /data) != 'git' ]; then + chown -R git:git /data ~git/ +fi + +# Check ownership of '/app/gogs' in case the image changed and '/data' is persistent +if [ $(stat -c '%U' /app/gogs) != 'git' ]; then + chown -R git:git /app/gogs +fi + + chmod 0755 /data /data/gogs ~git/ diff --git a/docker/start.sh b/docker/start.sh index 15f826093..9f9d40e98 100755 --- a/docker/start.sh +++ b/docker/start.sh @@ -33,17 +33,16 @@ create_volume_subfolder() { # Create VOLUME subfolder for f in /data/gogs/data /data/gogs/conf /data/gogs/log /data/git /data/ssh; do if ! test -d $f; then - exec gosu $USER mkdir -p $f + mkdir -p $f fi done } setids() { - export USER=git PUID=${PUID:-1000} PGID=${PGID:-1000} - groupmod -o -g "$PGID" $USER - usermod -o -u "$PUID" $USER + groupmod -o -g "$PGID" git + usermod -o -u "$PUID" git } setids