Refactor Dockerfile for improved build and runtime stages

This commit is contained in:
Danel Kungla
2025-07-16 12:09:14 +03:00
parent 4e0ef7b9de
commit d572ba52a8

View File

@@ -1,18 +1,34 @@
# --- Stage 1: Build ---
FROM node:20-alpine as builder
WORKDIR /app
RUN npm install -g pnpm@9
# Copy necessary files for workspace resolution
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
COPY packages packages
COPY tooling tooling
COPY .env.production .env
# Install all dependencies
RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
RUN pnpm build
# --- Stage 2: Runtime ---
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app ./
RUN npm install -g pnpm@9 \
&& pnpm install --prod --frozen-lockfile
ENV NODE_ENV=production
EXPOSE 3000
CMD ["pnpm", "start"]