cdrdpyj-turborepo/apps/cms/Dockerfile

34 lines
1008 B
Docker

# Payload CMS (apps/cms) — built from the monorepo root context.
# docker compose --profile apps build cms
FROM node:24-slim AS base
ENV PNPM_HOME=/pnpm
ENV PATH=$PNPM_HOME:$PATH
RUN corepack enable
# sharp / libvips runtime deps
RUN apt-get update && apt-get install -y --no-install-recommends \
openssl \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /repo
# ---- Install dependencies (whole workspace, respecting the lockfile) ----
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
# ---- Build the CMS ----
FROM base AS build
COPY --from=deps /repo/node_modules ./node_modules
COPY . .
RUN pnpm --filter cms build
# ---- Runtime ----
FROM base AS runtime
ENV NODE_ENV=production
COPY --from=build /repo ./
WORKDIR /repo/apps/cms
EXPOSE 3000
CMD ["pnpm", "start"]