Sandbox Docker Claude Code

Executer Claude Code depuis une sandbox Docker Dagu.

Installez Claude Code dans une image runner, verifiez le binaire claude et passez les credentials seulement a l'etape harness qui en a besoin. Dagu garde schedule, logs, retry policy et limite container dans YAML.

Etape Claude Code dans Docker
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.

Utilise le package npm officiel @anthropic-ai/claude-code.

Verifie claude --version via Dagu avant les appels modele.

Passe ANTHROPIC_API_KEY a la frontiere de l'etape container.

Fonctionne avec container racine ou par etape selon la portee du credential.

01

Image runner

Claude Code peut etre installe comme package npm global sur Node.js 18 ou plus. L'exemple utilise Node 22 et verifie le binaire pendant le build.

Dockerfile
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"]
02

Smoke test

Lancez d'abord un shell provider pour verifier l'image et le chemin du binaire sans envoyer de prompt a Claude.

DAG de verification de version
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 claude
03

Credentials

Pour un run non interactif simple, passez ANTHROPIC_API_KEY au container. Les autres methodes d'auth Claude Code sont possibles si leurs fichiers ou variables sont disponibles dans ce container.

04

Portee du container

Preferez un container d'etape pour une seule tache Claude Code. Utilisez un container racine seulement si des etapes build ou test doivent tourner dans la meme image avant que Claude Code lise le workspace.