Getting Started¶
Welcome to the DevOps Images documentation! This project provides production-ready, multi-architecture container images packed with essential DevOps tools for cloud infrastructure, automation, and platform engineering.
What Are These Images?¶
DevOps Images are pre-built Docker containers that include a comprehensive toolkit for:
- Infrastructure as Code (Terraform, Terragrunt, Packer)
- Kubernetes Operations (kubectl, Helm, k9s)
- Configuration Management (Ansible, pre-commit)
- Security Scanning (Trivy)
- Cloud Provider CLIs (AWS CLI, gcloud)
- AI Code Assistants (Claude, Codex, Copilot, Gemini)
- Database Clients (mongosh, psql, mysql)
- Development Tools (Python, Node.js, Git, GitHub CLI)
Built on Rocky Linux 10 with support for both AMD64 and ARM64 architectures, these images eliminate the need to install dozens of tools on your local machine or CI/CD runners.
Choose the Right Image¶
| Image | Best For | Cloud Tools | Size |
|---|---|---|---|
| all-devops | Multi-cloud teams, platform engineering, one-stop solution | AWS CLI + gcloud + Session Manager | Largest |
| aws-devops | AWS-focused DevOps, smaller footprint than all-devops | AWS CLI + Session Manager | Medium |
| gcp-devops | GCP-focused DevOps, smaller footprint than all-devops | gcloud + GKE tools | Medium |
Common Base Tools (All Images)¶
Infrastructure as Code:
- Terraform with tfswitch for version management
- Terragrunt for DRY configurations
- TFLint for linting
- Packer for image building
Kubernetes & Containers:
- kubectl (latest stable)
- Helm 3
- k9s terminal UI
Configuration & Automation:
- Ansible & ansible-lint
- pre-commit hooks
- Task (go-task) runner
Security & Quality:
- Trivy vulnerability scanner
Development:
- Python 3.14 with pip
- Node.js LTS with npm
- Git & GitHub CLI
- ghorg (GitHub org cloner)
AI Code Assistants:
- Claude CLI
- OpenAI Codex CLI
- GitHub Copilot CLI
- Google Antigravity CLI (
agy)
Database Clients:
- MongoDB Shell (mongosh) v8.0
- PostgreSQL (psql) v17
- MySQL client
Network & Diagnostics:
- dig, nslookup, ncat, telnet
- curl, wget, lftp
- jq JSON processor
Shells:
- Zsh (default, with Oh My Zsh)
- Bash
- Fish
Why Use These Images?¶
For Individual Developers¶
✓ No local tool installation - Everything pre-configured and ready to use ✓ Consistent environment - Same tools and versions across your team ✓ Clean host system - Keep development tools isolated in containers ✓ Multi-version testing - Test against different tool versions easily ✓ Cross-platform - Works on AMD64 Linux, macOS, and Apple Silicon
For Teams¶
✓ Standardised toolchain - Everyone uses identical tool versions ✓ Fast onboarding - New team members productive in minutes ✓ Multi-cloud ready - Single image for AWS, GCP, and Kubernetes ✓ Version controlled - Pin to specific image tags for reproducibility
For CI/CD Pipelines¶
✓ Pre-built and cached - Faster pipeline execution ✓ Immutable tags - Reproducible builds with version pinning ✓ Multi-arch support - Works with ARM and x86 runners ✓ Regular updates - Weekly automated builds with latest tools
Available Registries¶
Images are published to three container registries for redundancy and global availability:
| Registry | Image Path | Best For |
|---|---|---|
| GitHub Container Registry (GHCR) | ghcr.io/jinalshah/devops/images/<image>:<tag> | Primary, 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, rate-limit considerations |
Replace <image> with all-devops, aws-devops, or gcp-devops.
Quick Start Guide¶
Step 1: Pull an Image¶
Choose your preferred registry and pull the image:
# From GHCR (recommended)
docker pull ghcr.io/jinalshah/devops/images/all-devops:latest
# From GitLab
docker pull registry.gitlab.com/jinal-shah/devops/images/all-devops:latest
# From Docker Hub
docker pull js01/all-devops:latest
Step 2: Run the Container¶
Simple interactive session:
This drops you into a Zsh shell with all tools available.
Production-ready setup with volume mounts:
docker run -it --name devops-work \
-v $PWD:/srv \
-v ~/.ssh:/root/.ssh \
-v ~/.aws:/root/.aws \
-v ~/.config/gcloud:/root/.config/gcloud \
-v ~/.claude:/root/.claude \
-v ~/.codex:/root/.codex \
-v ~/.copilot:/root/.copilot \
-v ~/.gemini:/root/.gemini \
ghcr.io/jinalshah/devops/images/all-devops:latest
Volume mount explanations:
-v $PWD:/srv- Mount current directory as/srvfor accessing your project files-v ~/.ssh:/root/.ssh- Mount SSH keys for Git and remote access-v ~/.aws:/root/.aws- Mount AWS credentials (for AWS images)-v ~/.config/gcloud:/root/.config/gcloud- Mount GCP credentials (for GCP images)- AI CLI mounts - Required for authenticated AI assistant access
Step 3: Verify Tools¶
Once inside the container, verify tools are working:
# Infrastructure tools
terraform version
kubectl version --client
ansible --version
# Cloud CLIs (if using all-devops or cloud-specific images)
aws --version # AWS images
gcloud --version # GCP images
# Security and quality
trivy --version
# Development tools
python3 --version
node --version
git --version
Image Tags and Versioning¶
Tag Types¶
The CI pipeline publishes multiple tag types:
| Tag Type | Example | Description | Use For |
|---|---|---|---|
| Version | 1.0.abc1234 | Immutable, based on Git commit | Production, CI/CD |
| Arch-specific | 1.0.abc1234-amd64 | Single architecture | Debugging arch issues |
| Latest | latest | Points to latest main build | Development only |
Multi-Architecture Support¶
All images support both architectures:
- linux/amd64 (x86_64) - Traditional Intel/AMD processors
- linux/arm64 (aarch64) - ARM processors, Apple Silicon (M1/M2/M3)
Docker automatically pulls the correct architecture for your platform.
Best Practices¶
For CI/CD and Production:
For Local Development:
# ✅ Acceptable - always get latest tools
docker pull ghcr.io/jinalshah/devops/images/all-devops:latest
Avoid in Production:
# ❌ Avoid - tag changes over time, not reproducible
docker pull ghcr.io/jinalshah/devops/images/all-devops:latest
Common Use Cases¶
Use Case 1: Interactive Development¶
Perfect for working on infrastructure code without installing tools locally:
docker run -it --rm \
-v $PWD:/workspace \
-v ~/.aws:/root/.aws \
-w /workspace \
ghcr.io/jinalshah/devops/images/aws-devops:latest
Now you can run terraform, ansible, kubectl commands on your project files.
Use Case 2: CI/CD Pipeline¶
Use as a base container in GitHub Actions:
jobs:
deploy:
runs-on: ubuntu-latest
container:
image: ghcr.io/jinalshah/devops/images/all-devops:1.0.abc1234
steps:
- uses: actions/checkout@v4
- run: terraform init
- run: terraform apply -auto-approve
Use Case 3: One-off Commands¶
Run tools without entering the container:
# Format Terraform files
docker run --rm -v $PWD:/srv \
ghcr.io/jinalshah/devops/images/all-devops:latest \
terraform fmt -recursive /srv
# Scan for vulnerabilities
docker run --rm \
ghcr.io/jinalshah/devops/images/all-devops:latest \
trivy image nginx:latest
# Run Ansible playbook
docker run --rm -v $PWD:/srv \
ghcr.io/jinalshah/devops/images/all-devops:latest \
ansible-playbook /srv/playbook.yml
Use Case 4: Team Standardization¶
Create a team-specific wrapper script:
#!/bin/bash
# ~/bin/devops
docker run -it --rm \
-v $PWD:/workspace \
-v ~/.ssh:/root/.ssh \
-v ~/.aws:/root/.aws \
-w /workspace \
ghcr.io/jinalshah/devops/images/all-devops:1.0.abc1234 \
"$@"
Now team members can run: devops terraform plan
Next Steps¶
Choose your path based on what you want to accomplish:
I want to use pre-built images¶
→ Using the Images - Pull, run, and integrate with workflows
- All DevOps Image - Multi-cloud usage
- AWS DevOps Image - AWS-specific usage
- GCP DevOps Image - GCP-specific usage
I want to build images locally¶
→ Building Images - Build, customise, and test locally
- Building All DevOps
- Building AWS DevOps
- Building GCP DevOps
- Multi-platform Builds - Advanced build workflows
I want to learn about the tools¶
→ Tool Basics - Comprehensive tool reference
- Detailed descriptions of every tool
- Basic to advanced usage examples
- Common use cases and patterns
I'm having issues¶
→ Troubleshooting - Common problems and solutions
- Pull and authentication issues
- Container runtime problems
- Build failures
- Platform-specific issues
Documentation Structure¶
Getting Started (you are here)
├── Using Images
│ ├── Overview and common patterns
│ ├── All DevOps image
│ ├── AWS DevOps image
│ └── GCP DevOps image
├── Building Images
│ ├── Local builds
│ ├── Build customization
│ ├── Multi-platform builds
│ └── Image-specific builds
├── Tool Basics
│ └── Comprehensive tool reference
└── Troubleshooting
└── Common issues and solutions
Getting Help¶
- Documentation issues: Open an issue on GitHub
- Tool-specific help: Refer to the Tool Basics section
- Build problems: Check the Troubleshooting guide