Skip to content

Conversation

@jmgilman
Copy link
Collaborator

@jmgilman jmgilman commented Dec 31, 2025

Summary

  • Add default base image for Headjack (images/base/Dockerfile)
  • Add GitHub Actions workflow for building and publishing the image (.github/workflows/base-image.yml)

The base image provides a complete development environment for CLI-based coding agents, as specified in docs/designs/base-image.md.

Base Image Components

Category Components
Base OS Ubuntu 24.04 LTS
Architectures linux/amd64, linux/arm64
Container Runtime Docker CE with iptables-legacy workaround (ADR-002)
Agent CLIs Claude Code, Gemini CLI, Codex CLI
Version Managers pyenv, nodenv, goenv, rustup
Common Tools git, gh, ripgrep, fd-find, fzf, jq, yq, vim, htop, etc.

CI/CD Workflow

Uses WarpBuild runners and Docker Builders for fast, native multi-architecture builds (no QEMU emulation).

Trigger Action
PR changes to images/base/** Build only (validation)
Push to master Build and push :latest
Release published Build and push version tags

Registry: ghcr.io/${{ github.repository_owner }}/base

Test plan

  • Verify workflow runs on this PR (build validation for both amd64 and arm64)
  • After merge, verify :latest tag is published to GHCR with both architectures

🤖 Generated with Claude Code

@jmgilman jmgilman force-pushed the joshuagilman/base-image branch 3 times, most recently from 757f877 to 55758da Compare December 31, 2025 20:51
Add the default base image for Headjack that provides a complete
development environment for CLI-based coding agents.

Dockerfile includes:
- Ubuntu 24.04 LTS with systemd enabled
- Docker CE with iptables-legacy workaround (ADR-002)
- Agent CLIs: Claude Code, Gemini CLI, Codex CLI
- Version managers: pyenv, nodenv, goenv, rustup
- Common tooling: git, gh, ripgrep, fd-find, jq, yq, etc.
- Multi-architecture support (amd64, arm64)

GitHub Actions workflow:
- Uses WarpBuild runners and Docker Builders for fast multi-arch builds
- Validates image builds on PR changes
- Publishes :latest on merge to master
- Publishes versioned tags on release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@jmgilman jmgilman force-pushed the joshuagilman/base-image branch from 55758da to 6ff72b1 Compare December 31, 2025 20:54
@jmgilman jmgilman merged commit 7f89b6e into master Dec 31, 2025
1 check passed
@jmgilman jmgilman deleted the joshuagilman/base-image branch December 31, 2025 22:14
jmgilman added a commit that referenced this pull request Jan 3, 2026
Current behavior:
N/A - new feature

New behavior:
Provides a complete development environment Docker image for CLI-based coding agents with Ubuntu 24.04, Docker CE, agent CLIs (Claude Code, Gemini CLI, Codex CLI), version managers (pyenv, nodenv, goenv, rustup), and common development tooling. Includes GitHub Actions workflow with multi-architecture builds, security scanning, SBOM generation, and image signing with Cosign.

Closes: #5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants