mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
e2e403dc99
Encode the deployment recipe in the repo instead of platform config: digest-pinned node:22.16.0-slim base, pinned pnpm via packageManager, frozen-lockfile install, and (bot image only) Playwright Chromium with its system libraries — browsers install inside node_modules (PLAYWRIGHT_BROWSERS_PATH=0) so they ship with the app layer, the two gaps that broke chart rendering on Railpack-style builders. Verified locally per docker-ci-safety: both images build clean; chromium.launch() succeeds in the built bot image; the runtime image boots to listening. README gains a Deploying section (process table, env vars, Railway notes). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
18 lines
570 B
Docker
18 lines
570 B
Docker
# Agent backend (runtime.ts): LLM + MCP served over AG-UI.
|
|
# No browser — chart/diagram rendering happens in the bot image.
|
|
FROM node:22.16.0-slim@sha256:048ed02c5fd52e86fda6fbd2f6a76cf0d4492fd6c6fee9e2c463ed5108da0e34
|
|
|
|
WORKDIR /app
|
|
ENV CI=true
|
|
RUN corepack enable && corepack prepare pnpm@10.13.1 --activate
|
|
|
|
# Layer-cache the install: manifests first, source after.
|
|
COPY package.json pnpm-lock.yaml ./
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
COPY . .
|
|
|
|
# Reads PORT (default 8200). Slack/LLM/MCP credentials come from the environment.
|
|
EXPOSE 8200
|
|
CMD ["pnpm", "runtime"]
|