Local and test container images¶
Production releases publish semver tags (v0.3.0, 0.3.0, …) to
ghcr.io/konih/kollect via
release workflow. For manual maintainer testing against a
real registry or a remote cluster, use maintainer-only tags that never collide with release
semver.
Not for production
Tags such as local, test-*, and dev-* are maintainer-only. Do not reference them in
Helm values, GitOps repos, or customer-facing docs.
Build for kind / minikube (load locally)¶
Builds a single-platform image into the local daemon (default linux/amd64):
task docker:build:local
# → ghcr.io/konih/kollect:local
kind load docker-image ghcr.io/konih/kollect:local --name kollect-dev
Override repository, tag, platform, or container tool:
IMAGE_REPO=ghcr.io/konih/kollect IMAGE_TAG=dev-me PLATFORMS=linux/arm64 task docker:build:local
CONTAINER_TOOL=podman task docker:build:local
The legacy kind workflow (task docker:build → kollect-controller-manager:dev) remains
unchanged; see DEVELOPMENT.md.
Build and push to GHCR¶
Push requires a one-time registry login (do not commit tokens):
docker login ghcr.io
# GitHub → Settings → Developer settings → Personal access tokens (read:packages, write:packages)
Default tag is the current commit short SHA (test-<short-sha>):
task docker:push:local
# → ghcr.io/konih/kollect:test-a1b2c3d
IMAGE_TAG=test-$(git rev-parse --short HEAD) task docker:push:local
IMAGE_TAG=local-dev IMAGE_REPO=ghcr.io/konih/kollect task docker:push:local
Multi-arch push (optional):
PLATFORMS=linux/amd64,linux/arm64 task docker:push:local
Semver-like tags (v0.3.0, 0.3.0-rc.1) are rejected by the script so local tasks cannot
accidentally overwrite release tags.
Environment reference¶
| Variable | Default | Purpose |
|---|---|---|
IMAGE_REPO |
ghcr.io/konih/kollect |
Registry repository |
IMAGE_TAG |
local (build) / test-<short-sha> (push) |
Maintainer-only tag |
PLATFORMS |
linux/amd64 |
Single platform; comma-separated for multi-arch push |
CONTAINER_TOOL |
docker |
docker or podman |