Your whole DevOps toolbox, in one container¶
Terraform, Kubernetes, AWS, Google Cloud, Ansible, security scanning, database clients and four AI coding agents, pre-installed and ready to go. You don't need to install anything on your machine or your CI runners.
Choose your image¶
All three images share the same base toolkit. They differ only in which cloud CLIs they add on top.
-
all-devops
Everything: AWS CLI v2 + Session Manager and Google Cloud CLI. Best for multi-cloud and platform teams.
ghcr.io/jinalshah/devops/images/all-devops -
aws-devops
AWS CLI v2, Session Manager plugin, boto3, cfn-lint and s3cmd, with no Google Cloud SDK.
ghcr.io/jinalshah/devops/images/aws-devops -
gcp-devops
Google Cloud CLI with beta components,
gsutil,bq,docker-credential-gcrand the GKE auth plugin, with no AWS tooling.ghcr.io/jinalshah/devops/images/gcp-devops
Not sure? The interactive image picker answers it in three clicks.
How the images are layered¶
flowchart TB
R["Rocky Linux 10"] --> B["Shared base layer<br/>Terraform · Terragrunt · TFLint · Packer<br/>kubectl · Helm · k9s · Ansible · Trivy<br/>Python 3.14 · Node.js LTS · Git · gh<br/>Claude · Codex · Copilot · Antigravity<br/>mongosh · psql · mysql"]
B --> A["all-devops<br/>+ AWS CLI + gcloud"]
B --> W["aws-devops<br/>+ AWS CLI + SSM"]
B --> G["gcp-devops<br/>+ gcloud + GKE auth"]
classDef base fill:#0d9488,stroke:#0f766e,color:#fff
classDef os fill:#334155,stroke:#1e293b,color:#fff
classDef all fill:#7c3aed,stroke:#5b21b6,color:#fff
classDef aws fill:#ea7a0c,stroke:#c2410c,color:#fff
classDef gcp fill:#2563eb,stroke:#1d4ed8,color:#fff
class R os
class B base
class A all
class W aws
class G gcp
What's inside¶
-
Infrastructure as code
Terraform (via tfswitch), Terragrunt, TFLint, Packer
-
Kubernetes
kubectl, Helm 3, k9s
-
Automation
Ansible, ansible-lint, pre-commit, Task (go-task)
-
Security
Trivy for image, filesystem and IaC scanning
-
AI coding agents
Claude Code, OpenAI Codex CLI, GitHub Copilot CLI, Google Antigravity CLI (
agy) -
Database clients
MongoDB Shell 8.0, PostgreSQL 17
psql, MySQL 8.4 client -
Languages & dev tools
Python 3.14, Node.js LTS, Git, GitHub CLI, ghorg, Zensical
-
Network & shells
dig, nslookup, nmap, ncat, telnet, curl, wget, lftp, jq · zsh (Oh My Zsh), bash, fish
Want to search and filter the whole list? Open the interactive tool explorer.
Quick start¶
This drops you into a Zsh shell with every tool available.
docker run -it --rm \
-v "$PWD":/srv -w /srv \
-v ~/.ssh:/root/.ssh:ro \
-v ~/.aws:/root/.aws \
-v ~/.config/gcloud:/root/.config/gcloud \
ghcr.io/jinalshah/devops/images/all-devops:latest
Your project is mounted at /srv, and your SSH keys and cloud credentials come with you.
jobs:
plan:
runs-on: ubuntu-latest
container:
image: ghcr.io/jinalshah/devops/images/all-devops:1.0.abc1234
steps:
- uses: actions/checkout@v7
- run: terraform init
- run: terraform plan
Pin a 1.0.<short-sha> tag so pipelines don't change under you, or pin the digest (@sha256:…) for byte-for-byte reproducibility.
Want every mount option? Use the docker run builder.
Registries and tags¶
Every image is published to three registries:
| Registry | Image path | Best for |
|---|---|---|
| GitHub Container Registry | ghcr.io/jinalshah/devops/images/<image>:<tag> |
Recommended for most users |
| GitLab Container Registry | registry.gitlab.com/jinal-shah/devops/images/<image>:<tag> |
GitLab CI/CD pipelines |
| Docker Hub | js01/<image>:<tag> |
Alternative (mind the pull rate limits) |
| Tag | Example | Use for |
|---|---|---|
| Version | 1.0.abc1234 |
CI/CD: one tag per commit (scheduled rebuilds refresh its tools) |
| Architecture-specific | 1.0.abc1234-amd64 |
Debugging a single architecture |
| Latest | latest |
Local development: always the newest build from main |
Both linux/amd64 and linux/arm64 (including Apple Silicon) are published under the same tag, and Docker pulls the right one automatically.
Need byte-for-byte reproducibility?
Images are rebuilt weekly (and whenever tool versions are bumped), and a rebuild of the same commit refreshes its 1.0.<sha> tag with newer tools. To lock a pipeline to exact bits, pin the digest:
Why use these images?¶
-
For individual developers
- No local tool installation
- Keep your host clean
- Same setup on Intel, AMD and Apple Silicon
-
For teams
- Everyone runs identical tool versions
- New starters are productive in minutes
- Pin a tag or digest for reproducibility
-
For CI/CD
- Pre-built, so there's no install step in pipelines
- Per-commit version tags (or pin a digest)
- Works on x86 and ARM runners
- Rebuilt weekly with the latest tools
Where next?¶
-
Up and running in five minutes.
-
Mounts, authentication, Compose and everyday patterns.
-
GitHub Actions, GitLab CI, Jenkins, CircleCI and Terraform.
-
Build locally, customise and go multi-platform.
-
A cheat sheet for every tool in the box.
-
Fixes for the most common problems.