Sandbox Docker de Claude Code

Ejecuta Claude Code desde un sandbox Docker de Dagu.

Instala Claude Code en una imagen runner, verifica el binario claude y pasa credenciales solo al paso harness que las necesita. Dagu mantiene agenda, logs, retry policy y frontera de contenedor en YAML.

Paso Claude Code en 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.

Usa el paquete npm oficial @anthropic-ai/claude-code.

Verifica claude --version mediante Dagu antes de llamadas al modelo.

Pasa ANTHROPIC_API_KEY en la frontera del paso container.

Funciona con container raiz o por paso segun el alcance de credenciales.

01

Imagen runner

Claude Code puede instalarse como paquete npm global en Node.js 18 o superior. El ejemplo usa Node 22 y verifica el binario durante el 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

Prueba de humo

Primero ejecuta un shell provider para verificar la imagen y la ruta del binario sin enviar prompt a Claude.

DAG de verificacion 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

Credenciales

Para una ejecucion no interactiva simple, pasa ANTHROPIC_API_KEY al contenedor. Otros metodos de auth de Claude Code tambien funcionan si sus archivos o variables estan disponibles dentro del mismo contenedor.

04

Alcance del container

Prefiere container por paso para una sola tarea Claude Code. Usa container raiz solo si pasos build o test deben correr en la misma imagen antes de que Claude Code lea el workspace.