11ARG NODE_VERSION=22
22FROM node:${NODE_VERSION}-alpine
33
4- RUN apk add --no-cache libc6-compat python3 make g++ bash nano
4+ FROM base AS builder
5+
6+ RUN apk add --no-cache libc6-compat python3 make g++
57
68ENV PNPM_HOME="/pnpm"
79ENV PATH="$PNPM_HOME:$PATH"
@@ -10,6 +12,8 @@ RUN npm install -g turbo
1012RUN npm install -g corepack@latest
1113RUN corepack enable pnpm
1214
15+ FROM builder AS installer
16+
1317WORKDIR /app
1418
1519COPY .gitignore .gitignore
@@ -19,34 +23,45 @@ RUN pnpm add -g turbo
1923COPY package.json package.json
2024COPY pnpm-*.yaml .
2125
26+ COPY tooling/tailwind/package.json ./tooling/tailwind/package.json
2227COPY tooling/prettier/package.json ./tooling/prettier/package.json
2328COPY tooling/eslint/package.json ./tooling/eslint/package.json
24- COPY tooling/typescript/package.json ./tooling/typescript/package.json
29+ COPY tooling/typescript ./tooling/typescript
2530
31+ COPY packages/trpc/package.json ./packages/trpc/package.json
32+ COPY packages/auth/package.json ./packages/auth/package.json
2633COPY packages/db/package.json ./packages/db/package.json
2734COPY packages/validators/package.json ./packages/validators/package.json
28- COPY packages/secrets/package.json ./packages/secrets/package.json
29- COPY packages/auth/package.json ./packages/auth/package.json
30- COPY packages/logger/package.json ./packages/logger/package.json
3135COPY packages/job-dispatch/package.json ./packages/job-dispatch/package.json
36+ COPY packages/logger/package.json ./packages/logger/package.json
37+ COPY packages/secrets/package.json ./packages/secrets/package.json
3238COPY packages/events/package.json ./packages/events/package.json
3339COPY packages/rule-engine/package.json ./packages/rule-engine/package.json
3440COPY packages/workspace-engine-sdk/package.json ./packages/workspace-engine-sdk/package.json
3541
36- COPY apps/pty-proxy /package.json ./apps/pty-proxy /package.json
42+ COPY apps/api /package.json ./apps/api /package.json
3743
3844RUN pnpm install --frozen-lockfile
3945
4046COPY . .
4147
42- RUN turbo build --filter=...@ctrlplane/pty-proxy
48+ RUN turbo build --filter=...@ctrlplane/api
49+
50+ FROM base AS runner
51+ WORKDIR /app
4352
4453RUN addgroup --system --gid 1001 nodejs
4554RUN adduser --system --uid 1001 nodejs
4655USER nodejs
4756
57+ COPY --from=installer --chown=nodejs:nodejs /app/apps/api/dist ./apps/api/dist
58+
59+ EXPOSE 8081
60+
4861ENV NODE_ENV=production
62+ ENV HOSTNAME=0.0.0.0
63+ ENV AUTH_TRUST_HOST=true
4964
50- WORKDIR /app/apps/pty-proxy /dist/
65+ WORKDIR /app/apps/api /dist/
5166
52- CMD ["node" , "index.js" ]
67+ CMD ["node" , "apps/api/dist/ index.js" ]
0 commit comments