-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathDockerfile.api
More file actions
35 lines (32 loc) · 1.15 KB
/
Dockerfile.api
File metadata and controls
35 lines (32 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
FROM node:22-alpine AS base
RUN corepack enable
WORKDIR /app
# --- dependency stage ---
FROM base AS deps
COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./
COPY packages/db/package.json packages/db/
COPY packages/domain/package.json packages/domain/
COPY packages/agent/package.json packages/agent/
COPY packages/ai/package.json packages/ai/
COPY packages/ingestion/package.json packages/ingestion/
COPY packages/vector/package.json packages/vector/
COPY packages/mcp-server/package.json packages/mcp-server/
COPY apps/api/package.json apps/api/
COPY apps/worker/package.json apps/worker/
RUN pnpm install --frozen-lockfile
# --- build stage ---
FROM base AS builder
COPY --from=deps /app ./
COPY . .
RUN pnpm --filter @bidwright/db db:generate
RUN pnpm --filter @bidwright/api build
# --- runtime stage ---
FROM node:22-alpine AS runner
RUN corepack enable
RUN apk add --no-cache libgcc libstdc++ ripgrep git poppler-utils
# Install the agent CLIs the production app shells out to.
RUN npm install -g @anthropic-ai/claude-code @openai/codex
WORKDIR /app
COPY --from=builder /app .
EXPOSE 3001
CMD ["pnpm", "--filter", "@bidwright/api", "exec", "tsx", "src/index.ts"]