Skip to content
Distr
Book DemoStart free trialLogin

Controller Images

ImageBaseContents
docker-controllerThe Alpine variant of the official Docker CLI imageThe controller binary, the Docker CLI with its Compose and Buildx plugins and curl for the health check, but no Docker daemon
docker-autohealAlpineThe autoheal script with curl and jq
kubernetes-controllerDistroless static, as the nonroot userThe controller binary only, without a shell or package manager

The Alpine images are built with their packages upgraded to the latest version, so a package fix published after a release is part of the next release. To pull the images from your own registry, see Controller Image Repository.

Every released image is published with an SBOM and build provenance and signed with cosign keyless signing by the GitHub Actions workflow that builds it. The images are published to registry.distr.sh, which Distr Cloud pulls from, and mirrored to ghcr.io, which self-hosted instances pull from by default. The same workflow run signs both, while release candidates are only published to ghcr.io.

To check an image before installing it, verify that its signature was issued to the workflow that builds it. The commands run cosign with an empty Docker config, so credentials or a credential helper configured for the registry cannot interfere with pulling the signature. Replace 4.8.1 with the controller version you install.

The docker-controller and kubernetes-controller images are signed by build-controller.yaml:

Terminal window
DOCKER_CONFIG=$(mktemp -d) cosign verify \
--certificate-identity-regexp '^https://github\.com/distr-sh/distr/\.github/workflows/build-controller\.yaml@' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
registry.distr.sh/distr/docker-controller:4.8.1

The docker-autoheal image is signed by build-docker-autoheal.yaml:

Terminal window
DOCKER_CONFIG=$(mktemp -d) cosign verify \
--certificate-identity-regexp '^https://github\.com/distr-sh/distr/\.github/workflows/build-docker-autoheal\.yaml@' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
registry.distr.sh/distr/docker-autoheal:4.8.1

For the Kubernetes controller, replace docker-controller with kubernetes-controller. cosign exits with an error if the image has no signature from that workflow.

To list the packages of an image, read its SBOM:

Terminal window
docker buildx imagetools inspect registry.distr.sh/distr/docker-controller:4.8.1 --format '{{ json .SBOM }}'

The command works the same for kubernetes-controller and docker-autoheal.