devops-sak)A single, feature-rich container image bundling a curated set of CLI tools that platform and DevOps engineers reach for every day — Kubernetes, cloud, IaC, secrets, build toolchains, and networking utilities — plus an interactive launcher dashboard.
devops-sak is a "grab one image and you have everything" toolbox built on Red Hat UBI10 Minimal. Run it interactively to get a menu-driven dashboard of the installed tools, drop into a shell, or invoke any bundled tool directly as a one-off command. Every tool is installed from pinned versions for reproducibility. This is intentionally a large, kitchen-sink image — not a slim single-purpose one.
docker pull n8500x/devops-sak
Interactive dashboard (default when run with a TTY and no command):
docker run -it n8500x/devops-sak
Straight to a shell:
docker run -it n8500x/devops-sak bash
Run any tool as a one-off command (bypasses the dashboard):
docker run --rm n8500x/devops-sak kubectl version --client
Mount your AWS credentials read-only:
docker run -it -v ~/.aws:/root/.aws:ro n8500x/devops-sak bash
The dashboard lists every installed tool with its detected version and lets you launch interactive tools (bash, python3, node, k9s, claude, opencode, vi), view CLI tool version/help, open a shell (s), run the certificate manager (c), or show system info (i).
Built on Red Hat UBI10 Minimal. Highlights by category:
Kubernetes / containers
kubectl v1.29.6, helm v3.12.0, kustomize v5.1.1k9s v0.32.7 (terminal UI), oc (OpenShift CLI) v4.17.0docker CE CLIInfrastructure as Code / config management
terraform v1.9.8, packer v1.11.2ansible + ansible-runnerCloud SDKs & CLIs
aws CLI v2, boto3, awscli (pip)azure-identity, azure-mgmt-resource, azure-mgmt-compute, azure-storage-blobgoogle-auth, google-cloud-storageSecrets / crypto
vault CLI v1.17.6hvac, cryptography, python-dotenvLanguages & build toolchains
JAVA_HOME=/usr/lib/jvm/java-current)AI / ML CLIs
claude), opencodehuggingface-hub)Source control / CI APIs
git, PyGithub, python-gitlabNetworking, shell & utilities
curl, wget, jq, yq, ncat (nmap-ncat), iputilsopenssh-clients, sshpass, openssl, vim-minimal, figletlibexpat 2.7.2 (built from source)Python developer libraries (selection)
requests, urllib3, httpx, aiohttp, websocket-client, dnspythonpyyaml, ruamel.yaml, lxml, xmltodict, jsonschema, pydantic, cerberusrich, click, typer, loguru, tabulate, tqdmparamiko, fabrickubernetes, docker, prometheus-clientpytest (+ plugins), hypothesis, faker, responses, vcrpy, coverageBundled learning archives live under /app (learn-you-an-llm, learn-you-an-hf-llm, learn-you-a-nanochat, learn-you-an-sft).
Entrypoint behavior — the image's entrypoint decides what to run:
docker run -it <img> (no command, TTY) → interactive dashboarddocker run -it <img> bash (command given) → runs that commanddocker run <img> (no command, no TTY) → plain bashDEVOPS_NO_DASHBOARD=1 to skip the dashboard and drop straight to bashEnvironment variables
JAVA_HOME=/usr/lib/jvm/java-current (stable symlink to the Temurin JDK 17)PATH prepends ${JAVA_HOME}/bin and /usr/local/binLD_LIBRARY_PATH=/usr/local/lib (for the custom-built libexpat)CHECKPOINT_DISABLE=1 — stops Terraform/Packer from phoning home (avoids hangs behind restrictive proxies)DEVOPS_NO_DASHBOARD — set to 1 to bypass the launcherMounts — nothing is required, but common patterns:
-v ~/.aws:/root/.aws:ro — AWS credentials/config-v ~/.kube:/root/.kube:ro — kubeconfig for kubectl/helm/k9s-v $(pwd):/work -w /work — work on local filesUsers — the container runs as root by default (WORKDIR /root). A non-root devops user also exists in the image if you prefer --user devops.
Certificate handling — certificates are managed on demand (not automatically at startup) via /usr/local/bin/update-certs.sh, which can install into the Java keystore (cacerts), the OS trust store, or both. It is also available from the dashboard (c).
Sources (choose exactly one):
<hostname> — extract certs from a live TLS endpoint (e.g. update-certs.sh api.example.com -p 8443)--import-file FILE — import a single PEM/CRT--import-dir DIR — import all .pem/.crt/.cert files (aliases auto-generated from filenames)--endpoints-file FILE — read host or host:port entries, one per lineInstall targets (default is both Java and OS):
-j/--java-only — Java keystore only-s/--system-only — OS trust store onlyUseful flags: --insecure (accept self-signed during extraction), -v (verbose), --java-cacerts PATH, --java-pass PASSWORD. Example:
docker run -it -v /path/to/certs:/certs n8500x/devops-sak \
update-certs.sh --import-dir /certs -j
docker build -t n8500x/devops-sak .
Tool versions are controlled by ARGs in the Dockerfile (e.g. KUBECTL_VERSION, TERRAFORM_VERSION, VAULT_VERSION, NODE_VERSION, GRADLE_VERSION, TEMURIN17_VERSION). Override at build time as needed:
docker build --build-arg TERRAFORM_VERSION=1.9.8 -t n8500x/devops-sak .
The build verifies every major tool is present and runs a certificate-management test suite; it fails if any tool is missing.
java/javac resolve to 17 via JAVA_HOME, even though Maven drags in its own JRE.sshpass (not in EPEL10) and libexpat are compiled during the build.CHECKPOINT_DISABLE=1 is baked in so Terraform/Packer don't hang on checkpoint.hashicorp.com behind restrictive proxies. For TLS-intercepting proxies, import your CA with update-certs.sh./usr/local/share/doc/devops-sak/README.txt).Content type
Image
Digest
sha256:e63dc13e4…
Size
1.7 GB
Last updated
2 months ago
docker pull n8500x/devops-sak