Repository navigation
Expand file tree
/
Copy pathContainerfile
More file actions
90 lines (78 loc) · 3.85 KB
/
Copy pathContainerfile
File metadata and controls
90 lines (78 loc) · 3.85 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# syntax=docker/dockerfile:1
ARG BUN_VERSION=1.4.2
ARG BUN_DIGEST=sha256:d888c0ae6c86d7866ff10c5aafdd9077b36aee6455b33dd270fb93c0dd5cef6f
ARG NODE_VERSION=24-alpine
ARG NODE_DIGEST=sha256:d32cdf619f63fe0471182d08996dd516c6275bb5fd31ae06e55a570bd9e1ad43
FROM oven/bun:${BUN_VERSION}-alpine@${BUN_DIGEST} AS build
WORKDIR /opt/adrkit
COPY package.json bun.lock LICENSE NOTICE ./
COPY packages/core/package.json ./packages/core/package.json
COPY packages/evaluator/package.json ./packages/evaluator/package.json
COPY packages/cli/package.json ./packages/cli/package.json
COPY packages/mcp/package.json ./packages/mcp/package.json
COPY packages/ci/package.json ./packages/ci/package.json
COPY packages/catalog-envelope/package.json ./packages/catalog-envelope/package.json
COPY packages/sdk/package.json ./packages/sdk/package.json
COPY packages/portal/package.json ./packages/portal/package.json
COPY packages/server/package.json ./packages/server/package.json
COPY packages/adapters/agent-plugin/package.json ./packages/adapters/agent-plugin/package.json
COPY packages/adapters/catalog-backstage/package.json ./packages/adapters/catalog-backstage/package.json
COPY packages/adapters/spec-kit/package.json ./packages/adapters/spec-kit/package.json
COPY packages/core/src ./packages/core/src
COPY packages/evaluator/src ./packages/evaluator/src
COPY packages/cli/src ./packages/cli/src
COPY packages/mcp/src ./packages/mcp/src
COPY packages/sdk/src ./packages/sdk/src
COPY packages/portal/src ./packages/portal/src
COPY packages/server/src ./packages/server/src
COPY packages/ci/dist ./packages/ci/dist
RUN bun install --frozen-lockfile --production --ignore-scripts
RUN mkdir -p /out \
&& bun build packages/cli/src/index.ts \
--target=node \
--conditions bun \
--outfile=/out/adr.js \
&& bun build packages/mcp/src/bin.ts \
--target=node \
--conditions bun \
--outfile=/out/adrkit-mcp.js \
&& bun build packages/server/src/bin.ts \
--target=node \
--conditions bun \
--outfile=/out/server.js
FROM node:${NODE_VERSION}@${NODE_DIGEST} AS runtime
LABEL org.opencontainers.image.title="adrkit" \
org.opencontainers.image.description="Containerized adrkit CLI, MCP server, read-only REST server, and CI entry points" \
org.opencontainers.image.source="https://github.com/mbeacom/adrkit" \
org.opencontainers.image.licenses="Apache-2.0"
ENV ADRKIT_HOME=/opt/adrkit
COPY LICENSE NOTICE /usr/share/licenses/adrkit/
RUN mkdir -p /workspace && chown node:node /workspace
WORKDIR /workspace
USER node
FROM runtime AS cli
COPY --from=build --chown=node:node /out/adr.js /opt/adrkit/adr.js
ENTRYPOINT ["node", "/opt/adrkit/adr.js"]
CMD ["--help"]
FROM runtime AS mcp
COPY --from=build --chown=node:node /out/adrkit-mcp.js /opt/adrkit/adrkit-mcp.js
ENTRYPOINT ["node", "/opt/adrkit/adrkit-mcp.js"]
FROM runtime AS server
COPY --from=build --chown=node:node /out/server.js /opt/adrkit/server.js
EXPOSE 8080
ENTRYPOINT ["node", "/opt/adrkit/server.js"]
FROM runtime AS ci
COPY --from=build --chown=node:node /opt/adrkit/packages/ci/dist/index.js /opt/adrkit/ci.js
ENTRYPOINT ["node", "/opt/adrkit/ci.js"]
FROM runtime AS queue-action
COPY --from=build --chown=node:node /opt/adrkit/packages/ci/dist/queue-action.js /opt/adrkit/queue-action.js
ENTRYPOINT ["node", "/opt/adrkit/queue-action.js"]
FROM runtime AS adrkit
COPY --from=build --chown=node:node /out/adr.js /opt/adrkit/adr.js
COPY --from=build --chown=node:node /out/adrkit-mcp.js /opt/adrkit/adrkit-mcp.js
COPY --from=build --chown=node:node /out/server.js /opt/adrkit/server.js
COPY --from=build --chown=node:node /opt/adrkit/packages/ci/dist/index.js /opt/adrkit/ci.js
COPY --from=build --chown=node:node /opt/adrkit/packages/ci/dist/queue-action.js /opt/adrkit/queue-action.js
COPY --chmod=0755 scripts/container-entrypoint.sh /usr/local/bin/adrkit-container
ENTRYPOINT ["adrkit-container"]
CMD ["--help"]