# buildah bud: Build Images From a Dockerfile

> buildah bud (build-using-dockerfile) builds an OCI image from a Containerfile or Dockerfile without a daemon. Reference for -t, -f, --build-arg, and CI errors.

Source: https://latchkey.dev/learn/command-reference/buildah-bud-build  
Updated: 2026-06-30

buildah bud builds an OCI image from a Containerfile or Dockerfile without a Docker daemon, the same job docker build does but rootless-friendly.

buildah is the daemonless builder behind podman build. `buildah bud` (build-using-dockerfile) takes a Dockerfile and produces an image, running rootless in CI.

## What it does

buildah bud reads a Containerfile/Dockerfile and executes its instructions to build an OCI image, tagging it with `-t`. It runs without a central daemon and supports rootless builds, so it suits unprivileged CI. `buildah build` is the same command.

## Common usage

```Terminal
# build and tag
buildah bud -t ghcr.io/acme/app:1.4.0 -f Dockerfile .

# pass build args
buildah bud -t app:local \
  --build-arg VERSION=1.4.0 --build-arg COMMIT="$GITHUB_SHA" .

# build a specific platform
buildah bud --platform linux/arm64 -t app:arm64 .
```

## Options

| Flag | What it does |
| --- | --- |
| -t, --tag <ref> | Name and tag for the built image |
| -f, --file <path> | Path to the Containerfile/Dockerfile |
| --build-arg key=value | Set a build argument |
| --platform os/arch | Target platform for the build |
| --layers | Cache intermediate layers between builds |
| --format oci|docker | Output image format |

## In CI

buildah bud builds Dockerfiles rootless in a plain container, no daemon and no `--privileged` in many setups. Follow it with `buildah push` to publish. Enable `--layers` so unchanged steps are cached across pipeline runs.

## Common errors in CI

"error creating build container ... potentially insufficient UIDs or GIDs available in user namespace" is the classic rootless buildah error; fix /etc/subuid and /etc/subgid for the runner user. "no such file or directory" for the Dockerfile means `-f` is wrong. "error building at STEP" prints the failing instruction, exactly like docker build.

## FAQ

### buildah bud: Build Images From a Dockerfile?

buildah is the daemonless builder behind podman build. buildah bud (build-using-dockerfile) takes a Dockerfile and produces an image, running rootless in CI.

### What it does?

buildah bud reads a Containerfile/Dockerfile and executes its instructions to build an OCI image, tagging it with -t. It runs without a central daemon and supports rootless builds, so it suits unprivileged CI. buildah build is the same command.

### In CI?

buildah bud builds Dockerfiles rootless in a plain container, no daemon and no --privileged in many setups. Follow it with buildah push to publish. Enable --layers so unchanged steps are cached across pipeline runs.

### Common errors in CI?

"error creating build container ... potentially insufficient UIDs or GIDs available in user namespace" is the classic rootless buildah error; fix /etc/subuid and /etc/subgid for the runner user. "no such file or directory" for the Dockerfile means -f is wrong.

---

Latchkey runs CI/CD that repairs its own failures. Agent entry points: https://latchkey.dev/agent.txt, https://latchkey.dev/openapi.json, https://latchkey.dev/llms.txt
