# Multi-stage build for the openbaar portal (Angular → nginx). # Build context is the repo root (the app needs the pnpm workspace + libs). See infra/docker-compose.yml. FROM node:24-slim AS build WORKDIR /src RUN corepack enable && corepack prepare pnpm@11.5.2 --activate # Restore first (cached unless the manifests change). COPY package.json pnpm-lock.yaml pnpm-workspace.yaml nx.json tsconfig.base.json eslint.config.mjs ./ RUN pnpm install --frozen-lockfile # Sources (only what the app + its libs need). COPY apps/openbaar apps/openbaar COPY libs libs RUN pnpm nx build openbaar FROM nginx:1.27-alpine AS runtime COPY apps/openbaar/nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /src/dist/apps/openbaar/browser /usr/share/nginx/html # No runtime config: the openbaar register is anonymous (no OIDC authority to inject). # Make the reverse-proxy resolver engine-portable (Docker 127.0.0.11 vs podman aardvark); runs from # the nginx image's /docker-entrypoint.d before nginx starts. COPY apps/portal-nginx-resolver.sh /docker-entrypoint.d/40-resolver.sh RUN chmod +x /docker-entrypoint.d/40-resolver.sh EXPOSE 80