diff --git a/Dockerfile b/Dockerfile index 0e5c0d275..4686afd22 100644 --- a/Dockerfile +++ b/Dockerfile @@ -60,9 +60,11 @@ RUN apt-get update && apt-get install -y --no-install-suggests \ && rm -rf /var/lib/apt/lists/* COPY --chown=node:node --from=builder /ghostfolio/dist/apps /ghostfolio/apps -COPY --chown=node:node ./docker/entrypoint.sh /ghostfolio/entrypoint.sh -RUN chmod 0700 /ghostfolio/entrypoint.sh +COPY --chown=node:node ./docker/entrypoint.sh ./docker/start.sh /ghostfolio +RUN chmod 0755 /ghostfolio/entrypoint.sh /ghostfolio/start.sh WORKDIR /ghostfolio/apps/api EXPOSE ${PORT:-3333} -USER node -CMD [ "/ghostfolio/entrypoint.sh" ] +RUN \ + groupadd -g 1001 ghostfolio && \ + useradd -u 1001 -g 1001 ghostfolio +ENTRYPOINT ["/ghostfolio/start.sh"] diff --git a/docker/start.sh b/docker/start.sh new file mode 100644 index 000000000..196bf8c5d --- /dev/null +++ b/docker/start.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +PUID=${PUID:-1000} +PGID=${PGID:-1000} + +groupmod -o -g "$PGID" node +usermod -o -u "$PUID" node + +find /config \! \( -uid $(id -u node) -gid $(id -g node) \) -print0 | xargs -0r chown node:node + +echo "Running Ghostfolio using using user node (uid=$(id -u node)) and group node (gid=$(id -g node))" +su node -g node -c "/ghostfolio/entrypoint.sh"