GitHub Action to install QEMU static binaries
Go to file
CrazyMax 96fe6ef7f3
Merge pull request #315 from docker/dependabot/npm_and_yarn/docker/actions-toolkit-0.92.0
build(deps): bump @docker/actions-toolkit from 0.91.0 to 0.92.0
2026-07-01 11:56:48 +02:00
__tests__
.github Merge pull request #305 from docker/dependabot/github_actions/actions/checkout-7.0.0 2026-06-29 17:45:09 +02:00
dist [dependabot skip] chore: update generated content 2026-07-01 09:40:17 +00:00
src
.dockerignore
.editorconfig
.gitattributes
.gitignore
.prettierignore
.prettierrc.json
.yarnrc.yml chore: allow actions-toolkit to bypass yarn age gate 2026-07-01 10:54:13 +02:00
action.yml
codecov.yml
dev.Dockerfile fix: use lockfile-aware install commands 2026-06-12 18:49:25 +00:00
docker-bake.hcl
eslint.config.mjs
LICENSE
package.json build(deps): bump @docker/actions-toolkit from 0.91.0 to 0.92.0 2026-07-01 09:39:29 +00:00
README.md
tsconfig.json
vitest.config.ts
yarn.lock build(deps): bump @docker/actions-toolkit from 0.91.0 to 0.92.0 2026-07-01 09:39:29 +00:00

GitHub release GitHub marketplace CI workflow Test workflow Codecov

About

GitHub Action to install QEMU static binaries.

Screenshot


Usage

name: ci

on:
  push:

jobs:
  qemu:
    runs-on: ubuntu-latest
    steps:
      -
        name: Set up QEMU
        uses: docker/setup-qemu-action@v4

This action registers QEMU emulators with binfmt_misc, so later steps can run containers built for another architecture on the GitHub-hosted runner.

name: run-cross-platform-container

on:
  workflow_dispatch:

jobs:
  qemu-example:
    runs-on: ubuntu-latest
    steps:
      -
        name: Set up QEMU
        uses: docker/setup-qemu-action@v4
      -
        name: Run an arm64 container
        run: docker run --rm --platform linux/arm64 alpine uname -m

The command above prints aarch64 even though the job itself is running on ubuntu-latest.

Tip

setup-qemu-action enables user-mode emulation for registered platforms. It does not install qemu-system-* tools or add qemu-* binaries to your PATH.

Note

If you are using docker/setup-buildx-action, this action should come before it:

    -
      name: Set up QEMU
      uses: docker/setup-qemu-action@v4
    -
      name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v4

Customizing

inputs

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

Name Type Default Description
image String tonistiigi/binfmt:latest QEMU static binaries Docker image
platforms String all Platforms to install (e.g., arm64,riscv64,arm)
reset Bool false Uninstall current emulators before installation
cache-image Bool true Cache binfmt image to GitHub Actions cache backend

outputs

The following outputs are available:

Name Type Description
platforms String Available platforms (comma separated)

Contributing

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