a2a-wrapper logoa2a-wrapper
Guides

Docker

Run a2a-wrapper agents in Docker. Build from the monorepo root, pass credentials as environment variables, mount a workspace, and handle Codex sandboxing and corporate proxy certificates.

Most wrappers ship a Dockerfile. Running an agent in a container is the recommended way to limit what it can reach. See the security guide.

Build from the monorepo root

The image needs the local @a2a-wrapper/core source, so build from the repository root:

docker build -f a2a-claude/Dockerfile -t a2a-claude:latest .

Replace a2a-claude with the wrapper you want.

Run

Pass credentials as environment variables and mount only the workspace:

docker run -p 3030:3030 \
  -e ANTHROPIC_API_KEY=sk-ant-... \
  -e WORKSPACE_DIR=/workspace \
  -v /host/path/to/repo:/workspace \
  a2a-claude:latest

Inside a container the server must bind to a reachable interface. Publish the port with -p, and on a shared network put an authenticating proxy in front, since the endpoint itself has no authentication.

Wrapper notes

WrapperNote
a2a-claudePass ANTHROPIC_API_KEY (or your Bedrock / Vertex environment) with -e. The Dockerfile header has a ready-made docker run
a2a-codexCodex wraps shell commands in Bubblewrap, which needs Linux user namespaces. Standard containers block them, so shell tool calls fail unless you run with --privileged or --security-opt=seccomp:unconfined. For local development, run without Docker
a2a-copilot, a2a-opencodeSupport a corporate proxy CA (Netskope, Zscaler). See their references
a2a-antigravityNo published Docker image yet, because of the Node and Python bridge

Do not bake secrets into images

Pass API keys at runtime with -e or your orchestrator's secret store. Never COPY a config containing credentials.

On this page