With the runtime able to start a container, the next failure is the image build itself:
STEP 1/7: FROM golang:1.27.3-bookworm@sha256:972b4110ba0f47539a975c31e52c64765e1ff19f2d74469ae4a595c6676e80a5
Error: creating build container: short-name "golang@sha256:972b4110ba0f47539a975c31e52c64765e1ff19f2d74469ae4a595c6676e80a5"
did not resolve to an alias and no unqualified-search registries are defined in
"/etc/containers/registries.conf"
building image-file "verify" exited 125
.vole/images/*.yaml name their base as a short name with a digest pinned. Podman refuses
to guess the registry when unqualified-search-registries is empty, and on Debian and
Ubuntu /etc/containers/registries.conf ships entirely commented out. So every workflow
whose image names a base this way cannot build on those distributions.
What fixed it here
/etc/containers/registries.conf.d/50-vole-runner.conf:
unqualified-search-registries = ["docker.io"]
The digest is what pins the base image; the list only says where to look for the name.
Scope
- Choose one: qualify image references in
.vole/images/*.yaml(docker.io/library/golang:…), or have the runner docs anddeploy/cloud-init/runner.yamlwrite the registries drop-in. The first travels with the repository and works on any runner; the second covers every image a repository adds later, including contributor-written ones. - Whichever is chosen,
docs/deploy/runner.mdshould say it, because the failure names a file the operator has never edited and looks like a workflow bug. - Consider whether a job image may name a registry other than Docker Hub at all; if images are only ever built from a digest, a stricter list is possible.
Acceptance criteria
On a clean Debian or Ubuntu runner, following only the documented steps, an image with a digest-pinned short-name base builds without a manual edit.
Related: #237 must be fixed first for the container runtime to get this far; #241 is the next failure after this one.