diff options
author | eightpigs <eightpigs@outlook.com> | 2020-04-15 19:42:32 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-15 19:42:32 +0800 |
commit | 28d74a98444c372ef2882c368559c8e4784a7f6f (patch) | |
tree | 84d008d42c539e4e1d5453614be22ca523967a33 /docker | |
parent | 5637706e4680b00ecbef0aeb92edb535ca0b607e (diff) |
docker: fix the bug of using root to create /data/ directory (#6106)
Diffstat (limited to 'docker')
-rwxr-xr-x | docker/s6/gogs/run | 1 | ||||
-rwxr-xr-x | docker/s6/gogs/setup | 15 | ||||
-rwxr-xr-x | docker/start.sh | 7 |
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 |