ARG BUILDPLATFORM ARG TARGETPLATFORM # Pinned npm version — keep in sync with Dockerfile.cli and # gitnexus/Dockerfile.test. ARG NPM_VERSION=11.14.1 # node:22-bookworm-slim FROM --platform=$BUILDPLATFORM node:22-bookworm-slim@sha256:9f6d5975c7dca860947d3915877f85607946403fc55349f39b4bc3688448bb6e AS builder ARG NPM_VERSION WORKDIR /app RUN npx --yes npm@${NPM_VERSION} install -g npm@${NPM_VERSION} COPY gitnexus-shared/package.json gitnexus-shared/package-lock.json ./gitnexus-shared/ RUN npm ci --prefix gitnexus-shared COPY gitnexus-shared ./gitnexus-shared RUN npm run build --prefix gitnexus-shared COPY gitnexus/package.json ./gitnexus/ COPY gitnexus-web/package.json gitnexus-web/package-lock.json ./gitnexus-web/ RUN npm ci --prefix gitnexus-web COPY gitnexus-web ./gitnexus-web RUN npm run build --prefix gitnexus-web # node:22-bookworm-slim FROM node:22-bookworm-slim@sha256:9f6d5975c7dca860947d3915877f85607946403fc55349f39b4bc3688448bb6e AS runtime RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/* \ && rm -rf /usr/local/lib/node_modules/npm \ && rm -rf /usr/local/lib/node_modules/corepack \ && rm -f /usr/local/bin/npm /usr/local/bin/npx /usr/local/bin/corepack WORKDIR /app COPY --from=builder /app/gitnexus-web/dist ./dist COPY docker-server.mjs ./docker-server.mjs RUN chown -R node:node /app USER node EXPOSE 4173 CMD ["node", "docker-server.mjs"]