FROM node:20-alpine AS builder RUN apk add --no-cache libc6-compat RUN corepack enable && corepack prepare pnpm@9.15.9 --activate WORKDIR /app COPY pnpm-lock.yaml pnpm-workspace.yaml package.json turbo.json ./ COPY apps/web/package.json apps/web/tsconfig.json apps/web/tsconfig.node.json apps/web/vite.config.ts ./apps/web/ COPY packages/ ./packages/ RUN pnpm install --frozen-lockfile COPY apps/web ./apps/web RUN pnpm --filter @investplay/web build FROM nginx:alpine AS runner RUN apk add --no-cache wget COPY --from=builder /app/apps/web/dist /usr/share/nginx/html COPY apps/web/nginx.conf /etc/nginx/nginx.conf RUN chown -R nginx:nginx /usr/share/nginx/html EXPOSE 80 HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:80/ || exit 1 CMD ["nginx", "-g", "daemon off;"]