Dockerfile (1.15 KB)
1FROM node:22-alpine AS builder
2ENV PNPM_HOME="/pnpm"
3ENV PATH="$PNPM_HOME:$PATH"
4RUN corepack enable
5
6WORKDIR /app
7
8COPY package.json pnpm-lock.yaml* pnpm-workspace.yaml* ./
9COPY packages/eslint-config/package.json ./packages/eslint-config/
10COPY packages/typescript-config/package.json ./packages/typescript-config/
11COPY apps/builder/package.json ./apps/builder/
12
13RUN pnpm install --frozen-lockfile
14
15COPY packages/eslint-config/ ./packages/eslint-config/
16COPY packages/typescript-config/ ./packages/typescript-config/
17COPY apps/builder/ ./apps/builder/
18
19WORKDIR /app/apps/builder
20RUN pnpm run build
21
22
23FROM node:22-alpine
24ENV PNPM_HOME="/pnpm"
25ENV PATH="$PNPM_HOME:$PATH"
26RUN corepack enable
27
28RUN pnpm install -g vercel@41.4.1
29
30WORKDIR /app
31
32ENV DEPLIT_OUTPUT_DIR="/deplit/out"
33ENV DEPLIT_WORK_DIR="/deplit/workspace"
34ENV DEPLIT_LOG_FILE_DEST="/deplit/logs/build.log"
35ENV NODE_ENV="production"
36
37
38RUN mkdir -p ${DEPLIT_OUTPUT_DIR} ${DEPLIT_WORK_DIR} /deplit/logs && \
39 chmod -R 777 ${DEPLIT_OUTPUT_DIR} ${DEPLIT_WORK_DIR} /deplit/logs
40
41COPY --from=builder /app/apps/builder/dist/index.cjs ./
42COPY --from=builder /app/apps/builder/package.json ./
43
44CMD ["node", "index.cjs"]