Custom container images built and maintained by Wiremind, published to GitHub Container Registry.
| Image | Description | Registry |
|---|---|---|
| haproxy | HAProxy with lua-json for haproxy-ingress auth support | ghcr.io/wiremind/haproxy |
| nginx-vts-exporter | Nginx with VTS (Virtual host Traffic Status) module | ghcr.io/wiremind/nginx-vts-exporter |
| kubectl | Kubectl CLI | ghcr.io/wiremind/kubectl |
| buildx | Docker Buildx CLI | ghcr.io/wiremind/buildx |
| gentoo-stage3 | Gentoo stage3 base image | ghcr.io/wiremind/gentoo-stage3 |
# Pull an image
docker pull ghcr.io/wiremind/haproxy:3.3.1-debian13
# Use in Dockerfile
FROM ghcr.io/wiremind/haproxy:3.3.1-debian13├── images/
│ └── <image-name>/
│ ├── docker-bake.hcl # Bake config (versions, tags, targets)
│ └── Containerfile* # One or more Containerfiles
├── .github/workflows/
│ ├── bake.yml # Build, push, sign with Cosign
│ ├── test.yml # PR: Hadolint linting
│ └── security.yml # Trivy & Kubescape scans
└── renovate.json # Automated dependency updates
-
Create directory:
mkdir -p images/my-image -
Create
docker-bake.hcl:variable "REGISTRY" { default = "ghcr.io/wiremind" } variable "VERSIONS" { default = ["1.0.0", "1.1.0"] } group "default" { targets = ["my-image"] } target "my-image" { name = "my-image-${replace(v, ".", "-")}" matrix = { v = VERSIONS } context = "." dockerfile = "Containerfile" tags = ["${REGISTRY}/my-image:${v}"] args = { UPSTREAM_TAG = v } platforms = ["linux/amd64"] }
-
Create
Containerfile:# syntax=docker.io/docker/dockerfile-upstream:1.20.0 ARG UPSTREAM_TAG=1.0.0 FROM docker.io/library/base:${UPSTREAM_TAG} # Your customizations
-
Push to
main- CI will automatically build and push all versions.
# Preview what will be built
docker buildx bake -f images/haproxy/docker-bake.hcl --print
# Build locally (no push)
docker buildx bake -f images/haproxy/docker-bake.hcl
# Build and push
docker buildx bake -f images/haproxy/docker-bake.hcl --push
# Lint Containerfiles
hadolint images/my-image/Containerfile| Workflow | Trigger | Actions |
|---|---|---|
| bake.yml | Push to main | Build changed images, push to GHCR, sign with Cosign |
| test.yml | Pull Request | Hadolint linting on changed Containerfiles |
| security.yml | After build + weekly | Trivy & Kubescape vulnerability scans |
All images are:
- Signed with Cosign using keyless signing
- Scanned with Trivy and Kubescape
- Reproducible using
SOURCE_DATE_EPOCHfrom git commit timestamps
Results are available in the Security tab.
Renovate automatically creates PRs for version updates.
See LICENSE file.