Repository navigation
Expand file tree
/
Copy pathDockerfile.coordinator
More file actions
61 lines (49 loc) · 2.75 KB
/
Copy pathDockerfile.coordinator
File metadata and controls
61 lines (49 loc) · 2.75 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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# syntax=docker/dockerfile:1
FROM node:24-alpine AS builder
WORKDIR /app
# Shared prebuilt data-only package (no build step). @clerum/workflow-runtime-core
# depends on it (file:../llm-providers) and workflow-recipes consumes it directly.
COPY packages/llm-providers ./packages/llm-providers
COPY packages/llm-provider-attempt-contract ./packages/llm-provider-attempt-contract
COPY packages/grok-provider-attempt-contract ./packages/grok-provider-attempt-contract
COPY packages/codex-catalog-projection ./packages/codex-catalog-projection
# Issue #299: workflow-recipes also imports the shared egress accumulator
# package through a local file dependency, so it must be present before npm ci.
COPY packages/network-policy-core ./packages/network-policy-core
COPY packages/workflow-runtime-core/package.json packages/workflow-runtime-core/package-lock.json ./packages/workflow-runtime-core/
COPY packages/workflow-runtime-core/tsconfig.json ./packages/workflow-runtime-core/
COPY packages/workflow-runtime-core/src ./packages/workflow-runtime-core/src
WORKDIR /app/packages/workflow-runtime-core
RUN npm ci && npm run build
WORKDIR /app
COPY packages/workflow-recipe-capability-policy ./packages/workflow-recipe-capability-policy
COPY packages/image-policy ./packages/image-policy
COPY workflow-recipes/package.json workflow-recipes/package-lock.json ./workflow-recipes/
WORKDIR /app/workflow-recipes
RUN npm ci
COPY workflow-recipes/tsconfig.json workflow-recipes/tsconfig.build.json ./
COPY workflow-recipes/src ./src
RUN npm run build:docker
FROM node:24-alpine
WORKDIR /app
COPY packages/llm-providers ./packages/llm-providers
COPY packages/llm-provider-attempt-contract ./packages/llm-provider-attempt-contract
COPY packages/grok-provider-attempt-contract ./packages/grok-provider-attempt-contract
COPY packages/codex-catalog-projection ./packages/codex-catalog-projection
COPY packages/network-policy-core ./packages/network-policy-core
COPY packages/workflow-runtime-core/package.json packages/workflow-runtime-core/package-lock.json ./packages/workflow-runtime-core/
COPY --from=builder /app/packages/workflow-runtime-core/dist ./packages/workflow-runtime-core/dist
# injection/model.js requires @clerum/llm-providers from this package path.
# Node walks up from packages/workflow-runtime-core/, not from workflow-recipes/.
WORKDIR /app/packages/workflow-runtime-core
RUN npm ci --omit=dev
WORKDIR /app
COPY packages/workflow-recipe-capability-policy ./packages/workflow-recipe-capability-policy
COPY packages/image-policy ./packages/image-policy
COPY workflow-recipes/package.json workflow-recipes/package-lock.json ./workflow-recipes/
WORKDIR /app/workflow-recipes
RUN npm ci --omit=dev
COPY --from=builder /app/workflow-recipes/dist ./dist
USER node
EXPOSE 8090
CMD ["node", "dist/coordinator.js"]