# syntax=docker/dockerfile:1.7 # ---------- build ---------- FROM node:22-alpine AS build RUN corepack enable && corepack prepare pnpm@10.33.0 --activate WORKDIR /repo COPY pnpm-workspace.yaml pnpm-lock.yaml package.json ./ COPY apps/api/package.json ./apps/api/ COPY apps/web/package.json ./apps/web/ COPY apps/e2e/package.json ./apps/e2e/ COPY packages/db/package.json ./packages/db/ COPY packages/shared/package.json ./packages/shared/ COPY packages/ui/package.json ./packages/ui/ COPY packages/config/package.json ./packages/config/ RUN pnpm install --frozen-lockfile COPY . . RUN pnpm -C packages/shared build \ && pnpm -C apps/web build # ---------- runtime ---------- FROM nginx:alpine RUN apk add --no-cache wget COPY apps/web/nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /repo/apps/web/dist /usr/share/nginx/html EXPOSE 80 HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \ CMD wget -qO- http://localhost/ || exit 1