Skip to content
Latchkey

Buildah "short-name ... did not resolve" (registries.conf) in CI

Buildah (via containers/image) refuses to guess where a short image name like python:3.12 lives when short-name mode is enforcing and no unqualified-search registries are configured. It needs a fully qualified name or a registries.conf that lists search registries.

What this error means

Buildah fails with "error creating build container: short-name \"python:3.12\" did not resolve to an alias and no unqualified-search registries are defined in \"/etc/containers/registries.conf\"".

buildah
Error: creating build container: short-name "python:3.12" did not resolve to an alias
and no unqualified-search registries are defined in "/etc/containers/registries.conf"

Common causes

The Dockerfile uses an unqualified image name

A FROM with a bare name relies on search registries. If none are configured, there is nothing to resolve the short name against.

registries.conf has no unqualified-search-registries

The image config in the runner does not list any default registries to search for unqualified names.

How to fix it

Fully qualify the base image

Use the full registry path in FROM so no short-name resolution is needed.

Dockerfile
# fully qualified base image
FROM docker.io/library/python:3.12

Configure unqualified-search registries

Add a search registry list to registries.conf so short names resolve.

registries.conf
# /etc/containers/registries.conf
unqualified-search-registries = ["docker.io"]

How to prevent it

  • Fully qualify base image names in Dockerfiles used with Buildah.
  • Ship a registries.conf with unqualified-search-registries in the build image.
  • Avoid relying on implicit docker.io resolution across tools.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →