cdrdpyj-turborepo/apps/web/Dockerfile

30 lines
897 B
Docker

# 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"]