diff --git a/Dockerfile b/Dockerfile index ac9fd8de5..8ee8bef22 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,13 @@ ARG NODE_IMAGE_VERSION="22-alpine" +ARG PNPM_VERSION="10.23.0" # Install dependencies only when needed FROM node:${NODE_IMAGE_VERSION} AS deps # Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. RUN apk add --no-cache libc6-compat WORKDIR /app -COPY package.json pnpm-lock.yaml ./ -RUN npm install -g pnpm +COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ +RUN npm install -g pnpm@${PNPM_VERSION} RUN pnpm install --frozen-lockfile # Rebuild the source code only when needed @@ -28,7 +29,7 @@ RUN npm run build-docker FROM node:${NODE_IMAGE_VERSION} AS runner WORKDIR /app -ARG PRISMA_VERSION="7.3.0" +ARG PRISMA_VERSION="7.7.0" ARG NODE_OPTIONS ENV NODE_ENV=production @@ -39,10 +40,13 @@ RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs RUN set -x \ && apk add --no-cache curl \ - && npm install -g pnpm + && npm install -g pnpm@${PNPM_VERSION} + +# Keep the repo's pnpm build-script policy available in this stage. +COPY pnpm-workspace.yaml ./ # Script dependencies -RUN pnpm --allow-build='@prisma/engines' add npm-run-all dotenv chalk semver \ +RUN pnpm --allow-build='@prisma/engines,prisma' add npm-run-all dotenv chalk semver \ prisma@${PRISMA_VERSION} \ @prisma/client@${PRISMA_VERSION} \ @prisma/adapter-pg@${PRISMA_VERSION} @@ -65,4 +69,4 @@ EXPOSE 3000 ENV HOSTNAME=0.0.0.0 ENV PORT=3000 -CMD ["pnpm", "start-docker"] \ No newline at end of file +CMD ["pnpm", "start-docker"]