# syntax=docker/dockerfile:1.7 FROM node:20-alpine AS base ENV PNPM_HOME=/pnpm ENV PATH=$PNPM_HOME:$PATH RUN corepack enable && corepack prepare pnpm@9.12.0 --activate # ---------- deps ---------- FROM base AS deps WORKDIR /app COPY package.json pnpm-workspace.yaml pnpm-lock.yaml* ./ COPY tsconfig.base.json ./ COPY packages/shared/package.json packages/shared/ COPY apps/backend/package.json apps/backend/ COPY apps/frontend/package.json apps/frontend/ RUN pnpm install --filter @family-wishlist/frontend... --frozen-lockfile || \ pnpm install --filter @family-wishlist/frontend... # ---------- build ---------- FROM deps AS build WORKDIR /app COPY packages/shared packages/shared COPY apps/frontend apps/frontend RUN pnpm --filter @family-wishlist/shared build RUN pnpm --filter @family-wishlist/frontend build # ---------- runtime (nginx) ---------- FROM nginx:1.27-alpine AS runtime COPY docker/nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /app/apps/frontend/dist /usr/share/nginx/html EXPOSE 80