docker/setup-qemu-action

GitHub Action to install QEMU static binaries

595

stars

431

commits

TypeScript

primary language

Sep 3, 2026

updated

github.com/marketplace/actions/docker-setup-qemu
binfmt-misc
docker
github-actions
github-actions-docker
qemu
Browse cluster: Docker and GitHub Actions tooling

README

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:

NameTypeDefaultDescription
imageStringtonistiigi/binfmt:latestQEMU static binaries Docker image
platformsStringallPlatforms to install (e.g., arm64,riscv64,arm)
resetBoolfalseUninstall current emulators before installation
cache-imageBooltrueCache binfmt image to GitHub Actions cache backend

outputs

The following outputs are available:

NameTypeDescription
platformsStringAvailable platforms (comma separated)

Contributing

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

Contributors

crazy-max

294 commits

dependabot[bot]

99 commits

tonistiigi

17 commits

docker/setup-qemu-action

GitHub Action to install QEMU static binaries

595

stars

431

commits

TypeScript

primary language

Sep 3, 2026

updated

github.com/marketplace/actions/docker-setup-qemu
binfmt-misc
docker
github-actions
github-actions-docker
qemu
Browse cluster: Docker and GitHub Actions tooling

README

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:

NameTypeDefaultDescription
imageStringtonistiigi/binfmt:latestQEMU static binaries Docker image
platformsStringallPlatforms to install (e.g., arm64,riscv64,arm)
resetBoolfalseUninstall current emulators before installation
cache-imageBooltrueCache binfmt image to GitHub Actions cache backend

outputs

The following outputs are available:

NameTypeDescription
platformsStringAvailable platforms (comma separated)

Contributing

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

Contributors

crazy-max

294 commits

dependabot[bot]

99 commits

tonistiigi

17 commits

Languages

TypeScript

56.1%

Dockerfile

22.1%

JavaScript

11.0%

HCL

10.8%