2026-03-05 09:17:23 +01:00
2026-03-05 07:38:34 +00:00
2026-03-04 09:07:39 +01:00
2024-05-07 15:43:51 +02:00
2024-05-07 15:43:51 +02:00
2024-05-07 15:43:51 +02:00
2024-05-07 15:43:51 +02:00
2025-08-07 10:23:38 +02:00
2021-07-02 07:02:33 +02:00
2026-03-04 09:06:43 +01:00
2025-01-08 13:01:31 +01:00
2026-03-05 09:09:21 +01:00
2026-02-28 09:58:00 +01:00

GitHub release GitHub marketplace CI workflow Test workflow Codecov

About

GitHub Action to set up Docker Buildx.

This action will create and boot a builder that can be used in the following steps of your workflow if you're using Buildx or the build-push action. By default, the docker-container driver will be used to be able to build multi-platform images and export cache using a BuildKit container.

Screenshot


Usage

name: ci

on:
  push:

jobs:
  buildx:
    runs-on: ubuntu-latest
    steps:
      -
        # Add support for more platforms with QEMU (optional)
        # https://github.com/docker/setup-qemu-action
        name: Set up QEMU
        uses: docker/setup-qemu-action@v4
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4

Configuring your builder

Customizing

inputs

The following inputs can be used as step.with keys:

List type is a newline-delimited string

driver-opts: |
  image=moby/buildkit:master
  network=host

CSV type must be a comma-delimited string

platforms: linux/amd64,linux/arm64
Name Type Default Description
version String Buildx version. (eg. v0.3.0, latest, https://github.com/docker/buildx.git#master)
name String Name of the builder. If not specified, one will be generated or if it already exists, it will be used instead of creating a new one
driver String docker-container Sets the builder driver to be used
driver-opts List List of additional driver-specific options (eg. image=moby/buildkit:master)
buildkitd-flags String BuildKit daemon flags
buildkitd-config * String BuildKit daemon config file
buildkitd-config-inline * String Same as buildkitd-config but inline
use Bool true Switch to this builder instance
endpoint String Optional address for docker socket or context from docker context ls
platforms List/CSV Fixed platforms for current node. If not empty, values take priority over the detected ones
append YAML Append additional nodes to the builder
keep-state Bool false Keep BuildKit state on cleanup. This is only useful on persistent self-hosted runners
cache-binary Bool true Cache buildx binary to GitHub Actions cache backend
cleanup Bool true Cleanup temp files and remove builder at the end of a job

Important

If you set the buildkitd-flags input, the default flags (--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host) will be reset. If you want to retain the default behavior, make sure to include these flags in your custom buildkitd-flags value.

Note

buildkitd-config and buildkitd-config-inline are mutually exclusive.

outputs

The following outputs are available:

Name Type Description
name String Builder name
driver String Builder driver
platforms String Builder node platforms (preferred and/or available)
nodes JSON Builder nodes metadata

environment variables

The following official docker environment variables are supported:

Name Type Default Description
DOCKER_CONFIG String ~/.docker The location of your client configuration files

Notes

nodes output

Name Type Description
name String Node name
endpoint String Node endpoint
driver-opts List Options for the driver
status String Node status
buildkitd-flags String Flags for buildkitd daemon
buildkit String BuildKit version
platforms String Platforms available

Example:

[
  {
    "name": "builder-8fa135e1-9bce-4a29-9368-46a09a1d750d0",
    "endpoint": "unix:///var/run/docker.sock",
    "status": "running",
    "buildkitd-flags": "--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host",
    "buildkit": "v0.27.1",
    "platforms": "linux/amd64,linux/amd64/v2,linux/amd64/v3,linux/386"
  }
]

Contributing

Want to contribute? Awesome! You can find information about contributing to this project in the CONTRIBUTING.md

Description
Languages
TypeScript 87.3%
Dockerfile 6.4%
JavaScript 3.2%
HCL 3.1%