37 lines
1.4 KiB
Docker
37 lines
1.4 KiB
Docker
# lvmh ops image: the control pi that lives inside the daemon deployment.
|
|
# Has docker CLI + the daemon's docker.sock mounted (see ops.go binds), so it
|
|
# can clone repos, inspect them, write Dockerfiles, build per-repo worker
|
|
# images and register them via the daemon REST API.
|
|
FROM node:24-bookworm-slim
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
bash ca-certificates git ripgrep curl xz-utils make jq golang-go \
|
|
docker.io \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN npm install -g --ignore-scripts @earendil-works/pi-coding-agent
|
|
|
|
# Same npm shim as the worker image (see worker.Dockerfile).
|
|
COPY docker/npm-real /usr/local/bin/npm-real
|
|
COPY docker/npm-shim /usr/local/bin/npm
|
|
RUN chmod +x /usr/local/bin/npm-real /usr/local/bin/npm
|
|
|
|
# Same pi config as workers (dotfiles, filtered; git: packages stripped).
|
|
COPY docker/pi-agent/ /root/.pi/agent/
|
|
COPY plugin/lvmh-agent.ts /root/.pi/agent/extensions/lvmh-agent.ts
|
|
COPY docker/worker-models.json /root/.pi/agent/models.json
|
|
|
|
# Ops instructions live in the workspace (AGENTS.md is auto-loaded from cwd).
|
|
COPY docker/ops-context/AGENTS.md /ops-seed/AGENTS.md
|
|
COPY docker/bridge /bridge
|
|
|
|
# Seed AGENTS.md into the persistent /ops volume on first boot only.
|
|
COPY docker/ops-context/entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
ENV PI_SESSION_DIR=/pi-sessions
|
|
WORKDIR /ops
|
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
CMD ["node", "/bridge/index.mjs"]
|