Skip to content

Repository files navigation

Agent Base Images

Scheduled builds of container images with base software installed, used as bases for Buildkite Agent and Buildkite Linux Hosted Agents.

These images are not intended to be used by customers directly, since they do not contain the Buildkite Agent or configuration, but are publicly available so that the contents and provenance of the base images are transparent.

Available at:

If you are looking for the Buildkite Agent, see the buildkite/agent repository.

Standard Variants

Base Images for Buildkite Agent container images.

Contains Docker tooling and other common system tools.

Tag Description
alpine Alpine base
alpine-k8s Alpine base plus kubectl and kustomize for Kubernetes workloads
ubuntu-focal Ubuntu 20.04 LTS base
ubuntu-jammy Ubuntu 22.04 LTS base
ubuntu-noble Ubuntu 24.04 LTS base
ubuntu-resolute Ubuntu 26.04 base

Hosted Variants

Base Images for Buildkite Linux Hosted Agents.

Contains python3, node, mise, buildkite-cli, aws-cli, google-cloud-cli, and other common system tools.

Tag Description
ubuntu-jammy-hosted Ubuntu 22.04 LTS base for Hosted Agents
ubuntu-noble-hosted Ubuntu 24.04 LTS base for Hosted Agents

Hosted Toolchains Variants

Hosted toolchain variants preloaded with mise:

  • two Node.js LTS lines (22 and 24), pinned via the NODE_22_VERSION and NODE_24_VERSION build args in the -hosted Dockerfiles
  • Yarn Classic, pinned via the YARN_VERSION build arg (currently 1.22.22)
  • the latest patch release from each supported Go 1.24, 1.25, and 1.26 line
  • the latest stable Ruby for which mise has a precompiled binary
  • the latest Maven 3, also linked to /usr/local/bin/mvn (bring your own JDK, e.g. via actions/setup-java)
  • Docker Engine from Docker's apt repository, with the buildx and compose CLI plugins (docker compose, no standalone docker-compose, matching GitHub runner images); the daemon is not started or configured in the image
  • the Noble variant also includes a focused GitHub Actions compatibility set: Clang, CMake, Ninja, common native-build headers, archive tools, and system utilities frequently assumed by workflows

The exact Node versions are the source of truth in the -hosted Dockerfiles and track the GitHub runner-image toolsets; Go, Ruby, and Maven resolve to exact versions at build time. The image records these versions, its architecture, mise version, install roots, and executable SHA-256 digests in /opt/buildkite/mise-toolchains/manifest.json.

Toolchains are stored once under /opt/buildkite/mise-toolchains/installs and linked into mise's /mise/installs and /opt/hostedtoolcache (node, go, Ruby, and maven) for setup actions. Node 24 is the default on PATH; the cache is not the runner's JavaScript runtime or full GitHub-hosted Ubuntu parity.

Mise is installed at /usr/local/bin/mise, not /mise/bin/mise, so jdx/mise-action can install its requested version. Reuse requires MISE_DATA_DIR=/mise; the images do not configure buildkite-gha.

Tag Description
ubuntu-jammy-hosted-toolchains Ubuntu 22.04 LTS Hosted base with preloaded mise toolchains
ubuntu-noble-hosted-toolchains Ubuntu 24.04 LTS Hosted base with preloaded mise toolchains

Why Ubuntu codenames?

This makes Dependabot slightly easier to work with. When tagged with version numbers, Dependabot likes to upgrade e.g. Ubuntu 20.04 to 24.04, when the goal is to offer an image based on the older LTS release.

About

Regular builds of container images with base software installed, used as a base for the agent images

Resources

Stars

1 star

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages