Sandbox Docker do Claude Code
Execute Claude Code a partir de um sandbox Docker do Dagu.
Instale Claude Code em uma imagem runner, verifique o binario claude e passe credenciais apenas para o passo harness que precisa delas. O Dagu mantem agenda, logs, retry policy e limite de container em 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.Usa o pacote npm oficial @anthropic-ai/claude-code.
Verifica claude --version via Dagu antes de chamadas ao modelo.
Passa ANTHROPIC_API_KEY na fronteira do passo container.
Funciona com container raiz ou por passo conforme o escopo da credencial.
Imagem runner
Claude Code pode ser instalado como pacote npm global em Node.js 18 ou superior. O exemplo usa Node 22 e verifica o binario durante o 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
Execute primeiro um shell provider para verificar a imagem e o caminho do binario sem enviar prompt ao 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 claudeCredenciais
Para um run nao interativo simples, passe ANTHROPIC_API_KEY ao container. Outros metodos de auth do Claude Code podem ser usados se seus arquivos ou variaveis estiverem disponiveis no mesmo container.
Escopo do container
Prefira container por passo para uma unica tarefa Claude Code. Use container raiz apenas se passos de build ou test precisarem rodar na mesma imagem antes de Claude Code ler o workspace.
Mais paginas de sandbox
Sandbox Docker do Claude Code
Entenda como Dagu escolhe o escopo do container Docker.
Codex no DockerExecute Codex com CODEX_HOME montado ou CODEX_API_KEY.
OpenCode no DockerExecute OpenCode com credenciais do provider montadas ou passadas.
CLI personalizada no DockerMapeie outra CLI para o formato harness provider do Dagu.