Docker container for AMD GAIA - Development edition with Claude Code.
Current Container Version: 1.2.0
The itomek/gaia-dev container provides a complete AMD GAIA development environment with Claude Code integration. GAIA is cloned from source and installed in editable mode, making it perfect for development and contributions.
Key Features:
- GAIA cloned from source and installed in editable mode
- Claude Code CLI pre-installed for AI-assisted development
- Ubuntu 24.04 LTS with Python 3.12 + Node.js 20
- Network isolation packages for sandboxing
- User
gaiawith passwordless sudo - Fast installation with
uvpackage manager - GitHub CLI (gh) configured with your token
- No
latesttag - all versions explicitly tagged
docker pull itomek/gaia-dev:1.2.0docker run -dit \
--name gaia-dev \
-v gaia-src:/home/gaia/gaia \
-e LEMONADE_BASE_URL=https://your-server.com/api/v1 \
-e GAIA_REPO_URL=https://github.com/amd/gaia.git \
-e GITHUB_TOKEN=ghp_your_token \
-e ANTHROPIC_API_KEY=sk-ant-your_key \
itomek/gaia-dev:1.2.0Note: Using a named volume (gaia-src:/home/gaia/gaia) persists the GAIA source code between container restarts, avoiding re-cloning.
docker exec -it gaia-dev zsh# Check GAIA installation
gaia --version
# Start Claude Code for AI-assisted development
claude
# Work with GAIA source
cd ~/gaia
git statusFor complete GAIA usage documentation, see AMD GAIA.
| Variable | Required | Default | Description |
|---|---|---|---|
LEMONADE_BASE_URL |
Yes | - | Lemonade server API endpoint (e.g., https://your-server.com/api/v1) |
GAIA_REPO_URL |
Yes | - | Git repository URL to clone (e.g., https://github.com/amd/gaia.git) |
GITHUB_TOKEN |
Yes | - | GitHub token for authenticated cloning and gh CLI configuration |
ANTHROPIC_API_KEY |
No | - | Claude Code API key (if not provided, uses interactive login) |
SKIP_GAIA_CLONE |
No | false |
Skip cloning GAIA repository (use if volume already contains source) |
The container follows this startup flow:
- Base image: Ubuntu 24.04 LTS with uv-managed Python 3.12 + Node.js 20
- System dependencies: git, gh CLI, jq, audio libraries, build tools, network isolation tools
- User
gaiacreated with passwordless sudo uv(fast Python package installer) installed globally- Claude Code CLI installed via native installer (user-owned, auto-updates enabled)
- At runtime (entrypoint.sh):
- Validates
LEMONADE_BASE_URLis set - Clones GAIA from
GAIA_REPO_URL(if not present in volume) - Installs GAIA in editable mode with
uv pip install -e . - Configures GitHub CLI if
GITHUB_TOKENprovided - Sets up
ANTHROPIC_API_KEYfor Claude Code
- Validates
Since GAIA is installed in editable mode, changes are immediately reflected:
# Enter container
docker exec -it gaia-dev zsh
# Navigate to GAIA source
cd ~/gaia
# Make changes
vim src/gaia/some_file.py
# Test immediately (no reinstall needed)
gaia --helpClaude Code is pre-installed and ready to use:
# Start Claude Code
claude
# Claude can help you:
# - Understand the GAIA codebase
# - Write new features
# - Debug issues
# - Write tests
# - Improve documentationGitHub CLI is configured with your token:
# Check git status
git status
# Create a branch
git checkout -b feature/my-change
# Use gh CLI
gh pr create
gh issue listYou can extend this image for your own development environment:
FROM itomek/gaia-dev:1.2.0
# Install additional development tools
RUN apt-get update && \
apt-get install -y vim emacs tmux && \
apt-get clean
# Install additional Python packages
RUN uv pip install --system debugpy ipdb
# Add custom configurations
COPY .vimrc /home/gaia/
COPY .tmux.conf /home/gaia/
USER gaiaFor more examples, see Dockerfile usage guide.
The gaia-dev container uses independent versioning from the GAIA package:
- Container versions (e.g.,
itomek/gaia-dev:1.2.0) indicate development environment features - The actual GAIA version installed depends on what you clone from
GAIA_REPO_URL - All versions are explicitly tagged (no
latesttag for reproducibility)
Version history:
1.2.0- Native Claude Code installer (user-owned, auto-updates enabled), DEVCONTAINER env1.1.0- Migrated to Ubuntu 24.04 LTS base image, uv-managed Python1.0.0- Development container with Claude Code, virtual environment, and editable GAIA install
Using a named volume for the GAIA source code is recommended:
# First run - clones GAIA
docker run -dit \
--name gaia-dev \
-v gaia-src:/home/gaia/gaia \
-e LEMONADE_BASE_URL=https://your-server.com/api/v1 \
-e GAIA_REPO_URL=https://github.com/amd/gaia.git \
-e GITHUB_TOKEN=ghp_your_token \
itomek/gaia-dev:1.2.0
# Stop and remove container
docker stop gaia-dev && docker rm gaia-dev
# Restart with same volume - GAIA source persists
docker run -dit \
--name gaia-dev \
-v gaia-src:/home/gaia/gaia \
-e LEMONADE_BASE_URL=https://your-server.com/api/v1 \
-e GAIA_REPO_URL=https://github.com/amd/gaia.git \
-e GITHUB_TOKEN=ghp_your_token \
-e SKIP_GAIA_CLONE=true \
itomek/gaia-dev:1.2.0Check that required environment variables are set:
docker logs gaia-devYou should see validation and clone/installation progress.
If ANTHROPIC_API_KEY is not provided, Claude Code will prompt for interactive login on first use:
docker exec -it gaia-dev claude
# Follow prompts to authenticateIf the volume already contains GAIA source, set SKIP_GAIA_CLONE=true to skip cloning:
docker run -dit \
--name gaia-dev \
-v gaia-src:/home/gaia/gaia \
-e LEMONADE_BASE_URL=https://your-server.com/api/v1 \
-e SKIP_GAIA_CLONE=true \
itomek/gaia-dev:1.2.0- GAIA Issues: https://github.com/amd/gaia/issues
- Docker Container Issues: https://github.com/itomek/gaia-docker/issues
- Claude Code Documentation: https://claude.ai/code
- Full Documentation: https://github.com/itomek/gaia-docker
- gaia-linux - Runtime container with GAIA from PyPI
- gaia-windows - Windows container (planned)
MIT License - see LICENSE file