20 lines
897 B
Docker
20 lines
897 B
Docker
FROM node:24-bookworm-slim AS build
|
|
WORKDIR /app
|
|
RUN corepack enable && corepack prepare pnpm@11.25.0 --activate
|
|
COPY apps/studio/pnpm-lock.yaml ./
|
|
COPY pnpm-workspace.yaml /tmp/monorepo-policy.yaml
|
|
RUN node -e "const fs=require('fs');const text=fs.readFileSync('/tmp/monorepo-policy.yaml','utf8');fs.writeFileSync('pnpm-workspace.yaml', text.slice(text.indexOf('allowBuilds:')));"
|
|
RUN pnpm fetch --frozen-lockfile --fetch-timeout=300000 --network-concurrency=8
|
|
COPY apps/studio/package.json ./
|
|
RUN pnpm install --offline --frozen-lockfile
|
|
COPY apps/studio/ .
|
|
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 /app/.next/standalone/ ./
|
|
COPY --from=build --chown=node:node /app/.next/static/ ./.next/static/
|
|
USER node
|
|
EXPOSE 3000
|
|
CMD ["node", "server.js"]
|