22 lines
657 B
Docker
22 lines
657 B
Docker
# Stage 1 — Install dependencies
|
|
FROM node:20-alpine AS deps
|
|
RUN corepack enable && corepack prepare pnpm@9.15.4 --activate
|
|
WORKDIR /app
|
|
COPY package.json pnpm-workspace.yaml pnpm-lock.yaml* .npmrc ./
|
|
COPY apps/web/package.json ./apps/web/
|
|
COPY apps/api/package.json ./apps/api/
|
|
COPY packages/shared/package.json ./packages/shared/
|
|
COPY packages/config/package.json ./packages/config/
|
|
RUN pnpm install --frozen-lockfile || pnpm install
|
|
|
|
# Stage 2 — Build
|
|
FROM deps AS build
|
|
COPY . .
|
|
RUN pnpm build
|
|
|
|
# Stage 3 — Production image
|
|
FROM nginx:alpine
|
|
COPY --from=build /app/apps/web/dist /usr/share/nginx/html/
|
|
EXPOSE 80
|
|
CMD ["nginx", "-g", "daemon off;"]
|