- Fork and clone the repository
- Make changes to
Dockerfile,setup.sh, or features insrc/ - Test locally:
# Base image docker buildx build --tag devcontainer:local . # Test a feature (e.g. claude-code) devcontainer features test -f claude-code .
Releases are fully automated via GitHub Actions. Pushing a version tag builds the multi-arch image (amd64 + arm64), pushes it to GHCR, and creates a GitHub Release.
# Tag a new version
git tag v1.2.0
git push origin v1.2.0This produces the following image tags on ghcr.io/zanreal-labs/devcontainer:
| Tag | Example | Description |
|---|---|---|
latest |
latest |
Always points to the newest release |
{{version}} |
1.2.0 |
Exact version |
{{major}}.{{minor}} |
1.2 |
Tracks patch updates |
{{major}} |
1 |
Tracks minor + patch updates |
Follow Semantic Versioning:
- Patch (
v1.0.1) — tool version bumps, bug fixes - Minor (
v1.1.0) — new tools added, non-breaking changes to setup.sh - Major (
v2.0.0) — breaking changes to Dockerfile base, removed tools, setup.sh interface changes
The GHCR package must be set to Public for external consumers. This is configured in:
https://github.com/orgs/zanreal-labs/packages/container/devcontainer/settings