Skip to content

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:

docker run -it --rm ghcr.io/jinalshah/devops/images/all-devops:latest

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 /srv for 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:

# ✅ Good - immutable version tag
docker pull ghcr.io/jinalshah/devops/images/all-devops:1.0.abc1234

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

I want to build images locally

Building Images - Build, customise, and test locally

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