Choosing the Right Image¶
Use this guide to select the best DevOps image for your needs.
Decision Tree¶
flowchart TD
START[Which image<br/>should I use?]
START --> Q1{Working with<br/>multiple clouds?}
Q1 -->|Yes| ALL[✅ Use all-devops<br/>✓ AWS + GCP tools<br/>✓ All features<br/>⚠️ Larger size ~3.2GB]
Q1 -->|No| Q2{Which cloud<br/>provider?}
Q2 -->|AWS| AWS_Q{Need AWS<br/>Session Manager?}
Q2 -->|GCP| GCP[✅ Use gcp-devops<br/>✓ gcloud tools<br/>✓ GKE ready<br/>✓ Smaller ~2.9GB]
Q2 -->|Neither/Local| BASE_Q{Need cloud<br/>CLI later?}
AWS_Q -->|Yes| AWS[✅ Use aws-devops<br/>✓ AWS CLI v2<br/>✓ Session Manager<br/>✓ CloudFormation tools<br/>✓ ~2.8GB]
AWS_Q -->|No| BASE_Q
BASE_Q -->|Maybe| ALL
BASE_Q -->|No| CONSIDER[Consider building<br/>custom base image<br/>without cloud tools]
ALL --> SIZE_Q{Concerned about<br/>image size?}
AWS --> SIZE_Q
GCP --> SIZE_Q
SIZE_Q -->|Yes| OPT[See Build Images ><br/>Optimization Guide]
SIZE_Q -->|No| DONE[🎯 You're all set!<br/>See Use Images guide]
style START fill:#4A90E2,color:#fff
style ALL fill:#FF6B6B,color:#fff
style AWS fill:#FF9F43,color:#fff
style GCP fill:#5F8D4E,color:#fff
style DONE fill:#48C774,color:#fff Quick Comparison¶
| Feature | all-devops | aws-devops | gcp-devops |
|---|---|---|---|
| Base Tools | ✅ | ✅ | ✅ |
| Terraform & IaC | ✅ | ✅ | ✅ |
| Kubernetes | ✅ | ✅ | ✅ |
| AI CLI Tools | ✅ | ✅ | ✅ |
| AWS CLI | ✅ | ✅ | ❌ |
| gcloud | ✅ | ❌ | ✅ |
| Session Manager | ✅ | ✅ | ❌ |
| docker-credential-gcr | ✅ | ❌ | ✅ |
| Size (approx) | ~3.2GB | ~2.8GB | ~2.9GB |
| Best For | Multi-cloud teams | AWS-first teams | GCP-first teams |
Use Case Scenarios¶
Solo Developer - Local Development¶
Recommendation: Start with all-devops
- ✅ Maximum flexibility for experimentation
- ✅ Try both AWS and GCP without switching images
- ✅ All AI CLI tools for productivity
- ⚠️ Slightly larger, but comprehensive
Team - Standardized AWS Environment¶
Recommendation: aws-devops
- ✅ Smaller image for faster CI/CD pulls
- ✅ AWS-specific tools (Session Manager for EC2)
- ✅ No unnecessary GCP tools
- ✅ Team consistency
Team - Google Cloud Platform¶
Recommendation: gcp-devops
- ✅ GCP-optimized with gcloud
- ✅ GCR authentication built-in
- ✅ Smaller than all-devops
- ✅ GKE-ready
CI/CD Pipeline - Multi-Cloud¶
Recommendation: all-devops with version pinning
- ✅ One image for all deployment targets
- ✅ Consistent tooling across pipelines
- ✅ Version pinning for reproducibility
- 🎯 Use immutable tags
Security-Conscious Team¶
Recommendation: Start with aws-devops or gcp-devops, scan with Trivy
- ✅ Smaller attack surface (fewer tools)
- ✅ Trivy included for vulnerability scanning
- ✅ Pin specific versions in production
- 🔒 Regular security updates
# Pull and scan
docker pull ghcr.io/jinalshah/devops/images/aws-devops:latest
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/jinalshah/devops/images/aws-devops:latest \
trivy image ghcr.io/jinalshah/devops/images/aws-devops:latest
Size vs Features Trade-off¶
What's in Each Image?¶
pie title all-devops Size Breakdown (~3.2GB)
"Rocky Linux Base" : 500
"System Packages" : 800
"Python + Packages" : 600
"Cloud CLIs (AWS + GCP)" : 900
"IaC Tools" : 300
"Other Tools" : 100 Size Optimization Strategies¶
Reduce Image Size
If size is a concern:
- Use cloud-specific images - Save ~300-400MB by using aws-devops or gcp-devops instead of all-devops
- Pin versions - Use immutable tags for Docker layer caching in CI/CD
- Build custom - Remove tools you don't need (see Customization Guide)
- Multi-stage builds - Copy only what you need into final stage
Feature Comparison Matrix¶
Infrastructure as Code Tools¶
| Tool | all-devops | aws-devops | gcp-devops | Notes |
|---|---|---|---|---|
| Terraform | ✅ | ✅ | ✅ | Multi-version via tfswitch |
| Terragrunt | ✅ | ✅ | ✅ | Latest stable |
| TFLint | ✅ | ✅ | ✅ | Linting and validation |
| Packer | ✅ | ✅ | ✅ | Image building |
Kubernetes Tools¶
| Tool | all-devops | aws-devops | gcp-devops | Notes |
|---|---|---|---|---|
| kubectl | ✅ | ✅ | ✅ | Latest stable |
| Helm 3 | ✅ | ✅ | ✅ | Package manager |
| k9s | ✅ | ✅ | ✅ | Terminal UI |
Cloud Provider Tools¶
| Tool | all-devops | aws-devops | gcp-devops | Notes |
|---|---|---|---|---|
| AWS CLI v2 | ✅ | ✅ | ❌ | AWS service management |
| Session Manager Plugin | ✅ | ✅ | ❌ | EC2 instance access |
| gcloud | ✅ | ❌ | ✅ | GCP service management |
| docker-credential-gcr | ✅ | ❌ | ✅ | GCR authentication |
AI CLI Tools¶
| Tool | all-devops | aws-devops | gcp-devops | Notes |
|---|---|---|---|---|
| Claude CLI | ✅ | ✅ | ✅ | Code review, architecture |
| Codex CLI | ✅ | ✅ | ✅ | Code generation |
| Copilot CLI | ✅ | ✅ | ✅ | GitHub integration |
| Gemini CLI | ✅ | ✅ | ✅ | Multi-modal, GCP-aware |
Configuration Management¶
| Tool | all-devops | aws-devops | gcp-devops | Notes |
|---|---|---|---|---|
| Ansible | ✅ | ✅ | ✅ | Latest stable |
| ansible-lint | ✅ | ✅ | ✅ | Playbook validation |
| pre-commit | ✅ | ✅ | ✅ | Git hook framework |
| Task | ✅ | ✅ | ✅ | Modern task runner |
Still Not Sure?¶
Need Help Deciding?
- Starting fresh? → Use all-devops for maximum flexibility
- Existing AWS infrastructure? → Use aws-devops for optimal size
- Using GKE/Cloud Run? → Use gcp-devops for GCP integration
- CI/CD with multi-cloud deployments? → Use all-devops with version pinning
- Want to customize? → Build your own based on any variant (guide)
Registry Choice¶
All images are available in three registries:
Why GHCR?
- ✅ No rate limits for public images
- ✅ Best availability and uptime
- ✅ Integrated with GitHub releases
- ✅ Fast global CDN
Why GitLab?
- ✅ Native GitLab CI integration
- ✅ Good for GitLab-first organizations
- ✅ Private runner support
Next Steps¶
Once you've chosen your image:
- Get Started: Follow the Quick Start Guide
- Pull the Image: See Use Images for pull commands
- Set Up Authentication: Configure credentials and volume mounts
- Explore Workflows: Check out real-world examples
- Customize: Learn how to build custom images
Quick Links: