This repository contains Dockerfiles for custom Docker images hosted on GitHub Container Registry (ghcr.io).
- devcontainer-bun - Bun development container
- devcontainer-claude-bun - Claude Code development container with firewall sandbox
- devcontainer-hugo-bun - Hugo Extended + Bun development container
- ralphex-fe - Bun + Hugo Extended on ralphex base (standalone image)
Each subdirectory represents a Docker image project. Devcontainer images use the following structure:
devcontainer-name/
├── .devcontainer/
│ ├── Dockerfile # Source of truth for the image
│ └── devcontainer.json # Dev container configuration (uses "build")
└── ...
Standalone Docker images (like ralphex-fe) use a flat structure:
image-name/
├── Dockerfile # Image definition
└── README.md # Image documentation
Bun development container for modern JavaScript/TypeScript development.
Usage in other projects:
{
"image": "ghcr.io/<username>/devcontainer-bun:latest"
}Claude Code development container with Bun runtime, Claude Code CLI, and a restrictive firewall sandbox.
Usage in other projects:
{
"image": "ghcr.io/<username>/devcontainer-claude-bun:latest",
"runArgs": ["--cap-add=NET_ADMIN", "--cap-add=NET_RAW"],
"postStartCommand": "sudo /usr/local/bin/init-firewall.sh"
}Hugo development container with Bun runtime.
Usage in other projects:
{
"image": "ghcr.io/<username>/devcontainer-hugo-bun:latest"
}Standalone Docker image based on ralphex with Bun 1.3.8 and Hugo Extended 0.155.2 for modern JavaScript/TypeScript development and static site generation.
Usage:
# Pull and run interactively
docker pull ghcr.io/<username>/ralphex-fe:latest
docker run -it --rm -v $(pwd):/workspace -w /workspace ghcr.io/<username>/ralphex-fe:latest
# Run Bun commands
docker run --rm -v $(pwd):/workspace -w /workspace ghcr.io/<username>/ralphex-fe:latest bun run index.ts
# Run Hugo commands
docker run --rm -v $(pwd):/workspace -w /workspace -p 1313:1313 ghcr.io/<username>/ralphex-fe:latest hugo server --bind 0.0.0.0- Create a new directory with your image name (e.g.,
devcontainer-myimage/) - Add
.devcontainer/Dockerfilewith your image definition - Add
.devcontainer/devcontainer.jsonthat references the Dockerfile - Create a GitHub Actions workflow for the image
- Update this README with usage instructions
- Create a new directory with your image name (e.g.,
myimage/) - Add
Dockerfiledirectly in the directory (no.devcontainer/subdirectory) - Add
README.mdwith image documentation - Create a GitHub Actions workflow for the image
- Update this README with usage instructions
Images from this repository are built and published to GitHub Container Registry. Other projects can reference these images in their devcontainer.json files using the "image" property.
Some images have automated update workflows that allow you to update dependency versions without manually editing Dockerfiles:
- Go to Actions tab → Select the update workflow (e.g., "Update and Build ralphex-fe")
- Click Run workflow
- Enter new versions (e.g., Bun 1.4.0, Hugo 0.156.0)
- Click Run workflow button
The workflow will:
- Update the Dockerfile with new versions
- Commit the changes to the repository
- Build and push the updated image
If you have the GitHub CLI installed, you can trigger updates from your terminal:
# Update ralphex-fe image versions
gh workflow run update-and-build-ralphex-fe.yml \
-f bun_version=1.4.0 \
-f hugo_version=0.156.0
# Update without building (just commit to repo)
gh workflow run update-and-build-ralphex-fe.yml \
-f bun_version=1.4.0 \
-f hugo_version=0.156.0 \
-f update_only=true
# Check workflow status
gh run list --workflow=update-and-build-ralphex-fe.yml
# Watch the latest run in real-time
gh run watchInstall GitHub CLI:
# macOS
brew install gh
# Authenticate (one-time setup)
gh auth login