GitHub Action to install QEMU static binaries https://github.com/marketplace/actions/docker-setup-qemu
  • TypeScript 56.2%
  • Dockerfile 22%
  • JavaScript 11%
  • HCL 10.8%
Find a file
CrazyMax 1a577caf9f
Merge pull request #295 from docker/dependabot/npm_and_yarn/actions/core-3.0.1
build(deps): bump @actions/core from 3.0.0 to 3.0.1
2026-05-28 10:24:19 +02:00
.github Merge pull request #293 from docker/dependabot/github_actions/actions/create-github-app-token-3.2.0 2026-05-28 10:23:54 +02:00
__tests__ uninstall current emulators 2026-05-27 17:33:46 +02:00
dist chore: update generated content 2026-05-28 06:23:40 +00:00
src uninstall current emulators 2026-05-27 17:33:46 +02:00
.dockerignore update to yarn 3.6.3 2024-05-07 15:53:14 +02:00
.editorconfig Initial commit (docker/build-push-action#87) 2020-08-18 18:19:47 +02:00
.gitattributes update to yarn 3.6.3 2024-05-07 15:53:14 +02:00
.gitignore update to yarn 3.6.3 2024-05-07 15:53:14 +02:00
.prettierignore update to yarn 3.6.3 2024-05-07 15:53:14 +02:00
.prettierrc.json switch to ESM and update config/test wiring 2026-02-28 02:05:32 +01:00
.yarnrc.yml ci: enforce ignore-scripts policy for Node package managers 2026-05-27 20:05:13 +00:00
action.yml uninstall current emulators 2026-05-27 17:33:46 +02:00
codecov.yml ci: test workflow and codecov config 2023-02-21 09:42:52 +01:00
dev.Dockerfile node 24 as default runtime 2026-03-03 12:26:39 +01:00
docker-bake.hcl update bake-action to v6 2025-01-08 13:12:39 +01:00
eslint.config.mjs switch to ESM and update config/test wiring 2026-02-28 02:05:32 +01:00
LICENSE Initial commit (docker/build-push-action#87) 2020-08-18 18:19:47 +02:00
package.json build(deps): bump @actions/core from 3.0.0 to 3.0.1 2026-05-28 06:22:51 +00:00
README.md uninstall current emulators 2026-05-27 17:33:46 +02:00
tsconfig.json switch to ESM and update config/test wiring 2026-02-28 02:05:32 +01:00
vitest.config.ts switch from jest to vitest 2026-02-28 02:05:29 +01:00
yarn.lock build(deps): bump @actions/core from 3.0.0 to 3.0.1 2026-05-28 06:22:51 +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