feat: add PUID/PGID support with docker-entrypoint.sh
Build & Push Docker Image / build (push) Successful in 12s

This commit is contained in:
2026-05-12 00:08:31 +02:00
parent bacac8ed8b
commit df6d67b8a5
2 changed files with 24 additions and 3 deletions
+6 -3
View File
@@ -16,7 +16,7 @@ RUN cd server && npm ci && npx tsc
FROM node:22-slim
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/* && \
mkdir -p /app /data && chown -R node:node /app /data
mkdir -p /app /data
WORKDIR /app
@@ -25,13 +25,16 @@ COPY --from=server-build /app/server/dist ./server/dist
COPY --from=server-build /app/server/node_modules ./server/node_modules
COPY .env.example ./.env.example
USER node
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
EXPOSE 3001
VOLUME ["/data"]
ENV DATABASE_PATH=/data/app.db
ENV NODE_ENV=production
ENV PUID=1000
ENV PGID=1000
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["node", "server/dist/index.js"]
+18
View File
@@ -0,0 +1,18 @@
#!/bin/sh
PUID=${PUID:-1000}
PGID=${PGID:-1000}
if [ "$(id -u)" = "0" ]; then
# Running as root - create user with desired PUID/PGID
groupmod -o -g "$PGID" node 2>/dev/null || true
usermod -o -u "$PUID" node 2>/dev/null || true
# Ensure data dir has correct ownership
chown -R node:node /data /app
# Drop privileges and run as node user
exec su -s /bin/sh node -c "cd /app && exec node server/dist/index.js"
else
# Already running as non-root
exec node server/dist/index.js
fi