Claude Code Docker-Sandbox

Claude Code aus einer Dagu Docker-Sandbox ausfuehren.

Installiere Claude Code in einem Runner Image, pruefe das claude-Binary und gib Credentials nur an den harness-Schritt, der sie braucht. Dagu haelt Schedule, Logs, Retry Policy und Container-Grenze in YAML.

Claude Code Schritt in 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.

Nutzt das offizielle npm-Package @anthropic-ai/claude-code.

Prueft claude --version ueber Dagu vor Modellaufrufen.

Uebergibt ANTHROPIC_API_KEY an der container step Grenze.

Funktioniert mit root-level oder step-level container je nach Credential-Scope.

01

Runner Image

Claude Code kann als globales npm-Package auf Node.js 18 oder neuer installiert werden. Das Beispiel nutzt Node 22 und prueft das Binary waehrend des Builds.

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

Fuehre zuerst einen shell provider aus, damit Image und Binary-Pfad geprueft werden, ohne einen Prompt an Claude zu senden.

Version Check DAG
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

Fuer einen einfachen non-interactive run uebergib ANTHROPIC_API_KEY an den Container. Andere Claude Code Auth-Methoden sind moeglich, wenn ihre Dateien oder Variablen im selben Container vorhanden sind.

04

Container-Scope

Bevorzuge step-level container fuer eine einzelne Claude Code Aufgabe. Root-level container ist nur noetig, wenn vorherige build- oder test-Schritte im selben Image laufen muessen, bevor Claude Code den Workspace liest.