@@ -6,7 +6,6 @@ FROM node-22-alpine AS pruner
66
77COPY --chown=node:node . .
88RUN npx -q
[email protected] prune --scope=supervisor --docker
9- RUN find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
109
1110FROM node-22-alpine AS base
1211
@@ -17,26 +16,17 @@ COPY --from=pruner --chown=node:node /app/out/json/ .
1716COPY --from=pruner --chown=node:node /app/out/pnpm-lock.yaml ./pnpm-lock.yaml
1817COPY --from=pruner --chown=node:node /app/out/pnpm-workspace.yaml ./pnpm-workspace.yaml
1918
20- FROM base AS dev-deps
21- RUN corepack enable
22- ENV NODE_ENV development
23-
24- RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm fetch --no-frozen-lockfile
25- RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm install --ignore-scripts --no-frozen-lockfile
26-
27- FROM base AS prod-deps
28- RUN corepack enable
29- ENV NODE_ENV production
19+ RUN corepack enable && corepack prepare --activate
3020
31- RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm install --prod --no-frozen-lockfile
21+ FROM base AS deps-fetcher
22+ RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm fetch --frozen-lockfile
3223
33- COPY --from=pruner --chown=node:node /app/internal-packages/database/prisma/schema.prisma /app/internal-packages/database/prisma/schema.prisma
24+ FROM deps-fetcher AS dev-deps
25+ ENV NODE_ENV development
3426
35- ENV NPM_CONFIG_IGNORE_WORKSPACE_ROOT_CHECK true
36- RUN pnpx
[email protected] generate --schema /app/internal-packages/database/prisma/schema.prisma
27+ RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm install --frozen-lockfile --offline --ignore-scripts
3728
3829FROM base AS builder
39- RUN corepack enable
4030
4131COPY --from=pruner --chown=node:node /app/out/full/ .
4232COPY --from=dev-deps --chown=node:node /app/ .
@@ -45,19 +35,19 @@ COPY --chown=node:node .configs/tsconfig.base.json .configs/tsconfig.base.json
4535COPY --chown=node:node scripts/updateVersion.ts scripts/updateVersion.ts
4636
4737RUN pnpm run generate && \
48- pnpm run -r --filter supervisor... build
38+ pnpm run --filter supervisor... build&& \
39+ pnpm deploy --filter=supervisor --prod /prod/supervisor
4940
5041FROM base AS runner
5142
52- RUN corepack enable
5343ENV NODE_ENV production
5444
55- COPY --from=pruner --chown=node:node /app/out/full/ .
56- COPY --from=prod-deps --chown=node:node /app .
57- COPY --from=builder --chown=node:node /app/apps/supervisor ./apps/supervisor
45+ COPY --from=builder /prod/supervisor /app/apps/supervisor
5846
5947EXPOSE 8000
60-
6148USER node
6249
50+ # ensure pnpm is installed during build and not silently downloaded at runtime
51+ RUN pnpm -v
52+
6353CMD [ "/usr/bin/dumb-init" , "--" , "pnpm" , "run" , "--filter" , "supervisor" , "start" ]
0 commit comments