From 4ba6966aa221277c5388d1e8630e58232db7bd3a Mon Sep 17 00:00:00 2001 From: Zef Hemel Date: Wed, 29 Nov 2023 13:47:18 +0100 Subject: [PATCH] Make docker work with --user flag --- Dockerfile | 4 +++- docker-entrypoint.sh | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index b83a323..bc0515e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,13 +17,15 @@ ENV TINI_VERSION v0.19.0 ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-${TARGETARCH} /tini # Make sure the deno user has access to the space volume -RUN mkdir -p /space \ +RUN mkdir -p -m 770 /space \ && chmod +x /tini \ && apt update \ && apt install -y git ssh-client \ && echo "**** cleanup ****" \ && apt-get -y autoremove \ && apt-get clean \ + && mkdir -p /deno-dir \ + && chmod 777 /deno-dir \ && rm -rf \ /tmp/* \ /var/lib/apt/lists/* \ diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 5cecc20..7a730ea 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,7 +1,7 @@ #!/bin/bash -e # Check if UID and GID are passed as environment variables, if not, extract from the space folder owner -if [ -z "$PUID" ]; then +if [ -z "$PUID" ] && [ "$UID" == "0" ] ; then # Get the UID of the folder owner PUID=$(stat -c "%u" "$SB_FOLDER") echo "Will run SilverBullet with UID $PUID, inferred from the owner of $SB_FOLDER (set PUID environment variable to override)" @@ -11,8 +11,8 @@ if [ -z "$PGID" ]; then PGID=$(stat -c "%g" "$SB_FOLDER") fi -if [ "$PUID" -eq "0" ]; then - echo "Will run SilverBullet as root" +if [ "$PUID" == "0" ] || [ "$UID" != "0" ]; then + # Will run SilverBullet as default user deno run -A --unstable /silverbullet.js $@ else # Create silverbullet user and group ad-hoc mapped to PUID and PGID