Browse Source

Revert "docker: fix the bug of using root account to create `/d… (#6085)

This reverts commit f3b05961aae82fa3e19c47f03c78974cf793fda3.
ᴜɴᴋɴᴡᴏɴ 4 năm trước cách đây
mục cha
commit
5753d4cb87
3 tập tin đã thay đổi với 17 bổ sung6 xóa
  1. 1 0
      docker/s6/gogs/run
  2. 13 2
      docker/s6/gogs/setup
  3. 3 4
      docker/start.sh

+ 1 - 0
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

+ 13 - 2
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/

+ 3 - 4
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