33 lines
1.2 KiB
Docker
33 lines
1.2 KiB
Docker
# syntax=docker/dockerfile:1
|
|
FROM node:22.22.3-alpine AS base
|
|
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
|
|
# ── deps ──────────────────────────────────────────────────────────────────────
|
|
FROM base AS deps
|
|
WORKDIR /app
|
|
|
|
COPY package.json pnpm-workspace.yaml pnpm-lock.yaml ./
|
|
COPY webclient/package.json ./webclient/
|
|
|
|
RUN pnpm install --frozen-lockfile --filter webclient...
|
|
|
|
# ── build ─────────────────────────────────────────────────────────────────────
|
|
FROM deps AS builder
|
|
WORKDIR /app
|
|
|
|
COPY webclient ./webclient
|
|
|
|
RUN pnpm --filter webclient build
|
|
|
|
# ── runtime ───────────────────────────────────────────────────────────────────
|
|
FROM node:22.22.3-alpine AS runner
|
|
WORKDIR /app
|
|
|
|
RUN npm install -g serve
|
|
|
|
COPY --from=builder /app/webclient/dist ./dist
|
|
|
|
EXPOSE 5000
|
|
|
|
CMD ["serve", "-s", "dist", "-l", "5000"]
|