add Dockerfile for production

This commit is contained in:
Marvin
2026-04-20 07:47:05 +02:00
parent 0a1114e3ea
commit 59622ca95f
+43
View File
@@ -0,0 +1,43 @@
FROM node:22-alpine AS base
RUN apk add --no-cache libc6-compat
WORKDIR /app
RUN corepack enable
FROM base AS deps
COPY package.json pnpm-workspace.yaml turbo.json pnpm-lock.yaml ./
COPY apps/store/package.json ./apps/store/
COPY packages/db/package.json ./packages/db/
COPY packages/auth/package.json ./packages/auth/
COPY packages/ui/package.json ./packages/ui/
COPY packages/config/package.json ./packages/config/
COPY packages/shared/package.json ./packages/shared/
COPY packages/storage/package.json ./packages/storage/
COPY packages/queue/package.json ./packages/queue/
RUN pnpm install --frozen-lockfile
FROM base AS builder
COPY --from=deps /app /app
COPY . .
ENV NEXT_TELEMETRY_DISABLED=1
RUN pnpm --filter @greg-modstore/config build
RUN pnpm --filter @greg-modstore/db db:generate
RUN pnpm --filter @greg-modstore/store exec prisma generate --schema prisma/schema.prisma
RUN pnpm --filter @greg-modstore/store build
FROM node:22-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
ENV NEXT_TELEMETRY_DISABLED=1
RUN addgroup -S nodejs && adduser -S nextjs -G nodejs
COPY --from=builder /app/apps/store/.next/standalone ./
COPY --from=builder /app/apps/store/.next/static ./apps/store/.next/static
COPY --from=builder /app/apps/store/public ./apps/store/public
COPY --from=builder /app/apps/store/src/generated ./apps/store/src/generated
COPY --from=builder /app/packages/db/src/generated ./packages/db/src/generated
COPY --from=builder /app/packages/config/dist ./packages/config/dist
USER nextjs
EXPOSE 3000
CMD ["node", "apps/store/server.js"]