# syntax=docker/dockerfile:1 FROM node:22-bookworm-slim AS base ENV NEXT_TELEMETRY_DISABLED=1 \ PNPM_HOME=/pnpm \ PATH=/pnpm:$PATH WORKDIR /app RUN corepack enable && corepack prepare pnpm@10 --activate FROM base AS deps COPY package.json pnpm-lock.yaml .npmrc ./ RUN pnpm install --frozen-lockfile FROM deps AS build ARG NEXT_PUBLIC_SERVER_URL=http://localhost:3000 ARG __NEXT_PRIVATE_ORIGIN=http://localhost:3000 ENV NODE_ENV=production \ NEXT_PUBLIC_SERVER_URL=$NEXT_PUBLIC_SERVER_URL \ __NEXT_PRIVATE_ORIGIN=$__NEXT_PRIVATE_ORIGIN \ DATABASE_URL=file:/app/shared/content.db \ PAYLOAD_SECRET=build-time-placeholder \ CRON_SECRET=build-time-placeholder \ PREVIEW_SECRET=build-time-placeholder COPY . . RUN pnpm build RUN pnpm prune --prod FROM base AS runner ENV NODE_ENV=production \ HOSTNAME=0.0.0.0 \ PORT=3000 COPY --from=build /app /app RUN mkdir -p /app/shared /app/public/media EXPOSE 3000 CMD ["pnpm", "start"]