Claude Code Docker-песочница
Запускайте Claude Code из Docker-песочницы Dagu.
Установите Claude Code в runner image, проверьте бинарь claude и передайте credentials только нужному harness шагу. Dagu хранит schedule, logs, retry policy и container boundary в YAML.
steps:
- id: claude_review
action: harness.run
container:
image: dagu-claude-runner:local
pull_policy: never
working_dir: /workspace
volumes:
- .:/workspace:ro
env:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
with:
provider: claude
model: sonnet
prompt: |
Review this repository and summarize the highest-risk issues.Использует официальный npm package @anthropic-ai/claude-code.
Проверяет claude --version через Dagu до вызовов модели.
Передает ANTHROPIC_API_KEY на границе container step.
Работает с root-level или step-level container в зависимости от scope credentials.
Runner image
Claude Code можно установить как global npm package на Node.js 18 или новее. Пример использует Node 22 и проверяет бинарь при build.
FROM node:22-bookworm-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates git ripgrep bash \
&& rm -rf /var/lib/apt/lists/*
RUN npm install -g @anthropic-ai/claude-code
RUN claude --version
WORKDIR /workspace
ENTRYPOINT []
CMD ["bash"]Smoke test
Сначала запустите shell provider, чтобы проверить image и binary path без отправки prompt в Claude.
type: graph
harnesses:
shell:
binary: sh
prefix_args:
- -c
prompt_mode: arg
steps:
- id: claude_version
action: harness.run
container:
image: dagu-claude-runner:local
pull_policy: never
with:
provider: shell
prompt: |
set -eu
claude --version
command -v claudeCredentials
Для простого non-interactive run передайте ANTHROPIC_API_KEY в контейнер. Другие способы auth Claude Code также возможны, если нужные файлы или переменные доступны внутри контейнера.
Container scope
Для одной Claude Code задачи чаще подходит step-level container. Root-level container нужен только если build или test шаги должны выполняться в том же image до чтения workspace Claude Code.
Другие sandbox-страницы