47 lines
831 B
Docker
47 lines
831 B
Docker
|
|
FROM node:24.14.1-alpine AS base
|
|
|
|
# ---- Builder Stage ----
|
|
FROM base AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
RUN npm install -g turbo
|
|
|
|
COPY . .
|
|
|
|
# Only isolate needed parts for docs
|
|
RUN turbo prune --scope=docs --docker
|
|
|
|
# ---- Installer Stage ----
|
|
FROM base AS installer
|
|
|
|
WORKDIR /app
|
|
|
|
RUN corepack enable
|
|
|
|
# Copy pruned workspace
|
|
COPY --from=builder /app/out/json/ .
|
|
COPY --from=builder /app/out/pnpm-lock.yaml ./pnpm-lock.yaml
|
|
|
|
# Install only necessary dependencies
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
# Copy full source for build
|
|
COPY --from=builder /app/out/full/ .
|
|
COPY turbo.json ./
|
|
COPY .turbo/ ./.turbo/
|
|
COPY .git/ ./.git/
|
|
|
|
# Build Docusaurus
|
|
RUN pnpm dlx turbo run build --filter=docs...
|
|
|
|
|
|
# ---- Runner Stage ----
|
|
FROM installer AS runner
|
|
|
|
EXPOSE 3000
|
|
|
|
WORKDIR /app/apps/docs
|
|
CMD ["pnpm", "start", "--host", "0.0.0.0", "--no-open"]
|