CI helper image with the tooling a pipeline expects preinstalled.
1.9K
Minimal tooling for CI via O(h)CI.
Oh CI is an Alpine based image maintained for bash/sh style CI in a container environment. Just the essentials, like trees, and Pokémon because it is not safe out there in this world if you do not have at least one.
| Tool | Why It's Here |
|---|---|
bash | Because sh alone is pain |
coreutils | The GNU classics — date, stat, env, friends |
curl | Talk to things |
gettext | Provides envsubst — template all the things |
git | Clone, fetch, diff |
jq | Speak JSON fluently |
rsync | Move files with grace |
tree | See what you're working with |
yq | Like jq but for YAML |
krabby | Display Pokémon in your terminal. No, it's not negotiable. |
# Run it
docker run --rm -it docker.io/prplanit/oh-ci:latest
# Template a config file from environment variables
docker run --rm \
-e DB_HOST=postgres.local \
-e DB_PORT=5432 \
-v ./template.conf:/template.conf \
docker.io/prplanit/oh-ci:latest \
sh -c 'envsubst < /template.conf'
# Greet yourself properly
docker run --rm docker.io/prplanit/oh-ci:latest krabby random
| Scenario | Example |
|---|---|
| K8s init container | Render config templates with envsubst before the app starts |
| CI pipeline step | Clone a repo, jq an API response, rsync artifacts |
| Config generation | Substitute ${VAR} placeholders in YAML/HCL/TOML files |
| Debugging | Drop into a pod with actual tools instead of crying into busybox |
initContainers:
- name: render-config
image: docker.io/prplanit/oh-ci:latest
command: ["/bin/sh", "-c"]
args:
- envsubst < /template/app.conf > /config/app.conf
envFrom:
- secretRef:
name: app-secrets
volumeMounts:
- name: template
mountPath: /template
- name: config
mountPath: /config
| Image | What It's For |
|---|---|
hlhd/ansible | Ansible playbooks, Python, collections, the whole orchestra |
prplanit/stagefreight | Declarative CI/CD — detect, build, scan, and release container images |
alpine/k8s | kubectl, helm, and the Kubernetes toolkit |
docker build -t prplanit/oh-ci:latest .
Distributed under the AGPL-3.0-only License. See LICENSING.md for commercial licensing.
Content type
Image
Digest
sha256:5f8a82028…
Size
21.6 MB
Last updated
7 months ago
docker pull prplanit/oh-ci