commit cfd776d3105c5ff975eeb0ea3d5a3a09ccee82c1
parent 230cc5b7fef4115c85c0d86e89b4bf35b98ca855
Author: iostpa <iostpa@iostpa.com>
Date: Wed, 29 Jul 2026 12:09:48 +0300
borrow a dockerfile
Diffstat:
1 file changed, 23 insertions(+), 5 deletions(-)
diff --git a/Dockerfile b/Dockerfile
@@ -1,7 +1,24 @@
-FROM ghcr.io/pnpm/pnpm:11
-RUN pnpm runtime set node 24 -g
-RUN pnpm install -g node-gyp
+# taken from https://depot.dev/docs/container-builds/optimal-dockerfiles/node-pnpm-dockerfile
+# syntax=docker/dockerfile:1
+FROM node:lts AS build
+RUN corepack enable
+ENV PNPM_HOME="/pnpm"
+ENV PATH="$PNPM_HOME:$PATH"
WORKDIR /app
+COPY pnpm-lock.yaml ./
+RUN --mount=type=cache,target=/pnpm/store \
+ pnpm fetch
+COPY package.json ./
+RUN --mount=type=cache,target=/pnpm/store \
+ pnpm install --frozen-lockfile --prod --offline
COPY . .
-RUN pnpm install --frozen-lockfile
-CMD ["pnpm", "run", "server"]
+RUN pnpm build
+FROM node:lts AS runtime
+RUN groupadd -g 1001 appgroup && \
+ useradd -u 1001 -g appgroup -m -d /app -s /bin/false appuser
+WORKDIR /app
+COPY --from=build --chown=appuser:appgroup /app ./
+ENV NODE_ENV=production \
+ NODE_OPTIONS="--enable-source-maps"
+USER appuser
+ENTRYPOINT ["pnpm", "run", "server"]+
\ No newline at end of file