24 lines
1.2 KiB
Docker
24 lines
1.2 KiB
Docker
FROM node:24-bookworm-slim AS build
|
|
WORKDIR /repo/apps/studio
|
|
RUN corepack enable && corepack prepare pnpm@11.25.0 --activate
|
|
COPY apps/studio/pnpm-lock.yaml ./
|
|
COPY pnpm-workspace.yaml /repo/pnpm-workspace.yaml
|
|
COPY packages/brand/ /repo/packages/brand/
|
|
COPY apps/studio/package.json ./
|
|
RUN pnpm --filter @prompt/studio install --frozen-lockfile --fetch-timeout=300000 --network-concurrency=8
|
|
COPY apps/studio/ .
|
|
# Compare the two public parameter validators inside the isolated CI build.
|
|
COPY apps/waterfall-wiki/src/lib/layout-parameters.ts /repo/apps/waterfall-wiki/src/lib/layout-parameters.ts
|
|
COPY apps/waterfall-wiki/src/lib/series.ts /repo/apps/waterfall-wiki/src/lib/series.ts
|
|
COPY apps/waterfall-wiki/src/lib/canvas-document.ts /repo/apps/waterfall-wiki/src/lib/canvas-document.ts
|
|
RUN pnpm typecheck && pnpm test && pnpm build && pnpm test:smoke
|
|
FROM node:24-bookworm-slim
|
|
WORKDIR /app
|
|
ENV NODE_ENV=production HOSTNAME=0.0.0.0 PORT=3000
|
|
COPY --from=build --chown=node:node /repo/apps/studio/.next/standalone/ ./
|
|
COPY --from=build --chown=node:node /repo/apps/studio/.next/static/ ./.next/static/
|
|
COPY --from=build --chown=node:node /repo/apps/studio/public/ ./public/
|
|
USER node
|
|
EXPOSE 3000
|
|
CMD ["node", "server.js"]
|