aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
authoreightpigs <eightpigs@outlook.com>2020-04-15 19:42:32 +0800
committerGitHub <noreply@github.com>2020-04-15 19:42:32 +0800
commit28d74a98444c372ef2882c368559c8e4784a7f6f (patch)
tree84d008d42c539e4e1d5453614be22ca523967a33 /docker
parent5637706e4680b00ecbef0aeb92edb535ca0b607e (diff)
docker: fix the bug of using root to create /data/ directory (#6106)
Diffstat (limited to 'docker')
-rwxr-xr-xdocker/s6/gogs/run1
-rwxr-xr-xdocker/s6/gogs/setup15
-rwxr-xr-xdocker/start.sh7
3 files changed, 6 insertions, 17 deletions
diff --git a/docker/s6/gogs/run b/docker/s6/gogs/run
index 1aa70eb4..edcf49ce 100755
--- a/docker/s6/gogs/run
+++ b/docker/s6/gogs/run
@@ -4,5 +4,4 @@ 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 8a95422a..b361495b 100755
--- a/docker/s6/gogs/setup
+++ b/docker/s6/gogs/setup
@@ -1,12 +1,12 @@
#!/bin/sh
if ! test -d ~git/.ssh; then
- mkdir -p ~git/.ssh
+ gosu $USER mkdir -p ~git/.ssh
chmod 700 ~git/.ssh
fi
if ! test -f ~git/.ssh/environment; then
- echo "GOGS_CUSTOM=${GOGS_CUSTOM}" > ~git/.ssh/environment
+ gosu $USER echo "GOGS_CUSTOM=${GOGS_CUSTOM}" > ~git/.ssh/environment
chmod 600 ~git/.ssh/environment
fi
@@ -19,15 +19,4 @@ 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 9f9d40e9..3913cb2f 100755
--- a/docker/start.sh
+++ b/docker/start.sh
@@ -33,16 +33,17 @@ 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
- mkdir -p $f
+ gosu $USER mkdir -p $f
fi
done
}
setids() {
+ export USER=git
PUID=${PUID:-1000}
PGID=${PGID:-1000}
- groupmod -o -g "$PGID" git
- usermod -o -u "$PUID" git
+ groupmod -o -g "$PGID" $USER
+ usermod -o -u "$PUID" $USER
}
setids