# Astro frontend (apps/web) — built from the monorepo root context. # docker compose --profile apps build web FROM node:24-slim AS base ENV PNPM_HOME=/pnpm ENV PATH=$PNPM_HOME:$PATH RUN corepack enable WORKDIR /repo FROM base AS deps COPY pnpm-workspace.yaml package.json pnpm-lock.yaml* .npmrc* ./ COPY packages/typescript-config/package.json packages/typescript-config/ COPY apps/cms/package.json apps/cms/ COPY apps/web/package.json apps/web/ RUN pnpm install --frozen-lockfile || pnpm install FROM base AS build COPY --from=deps /repo/node_modules ./node_modules COPY . . RUN pnpm --filter web build FROM base AS runtime ENV NODE_ENV=production ENV HOST=0.0.0.0 ENV PORT=4321 COPY --from=build /repo/apps/web/dist ./dist COPY --from=build /repo/apps/web/package.json ./package.json COPY --from=build /repo/node_modules ./node_modules EXPOSE 4321 CMD ["node", "./dist/server/entry.mjs"]