🪞 QEMU binfmt Mirror

A mirror of tonistiigi/binfmt hosted on a self-hosted Gitea Container Registry to speed up multi-platform Docker builds in CI/CD pipelines.

Why?

When building Docker images for multiple platforms (e.g. linux/amd64 + linux/arm64) on an amd64-only runner, QEMU emulation is required. The setup-qemu-action pulls tonistiigi/binfmt from Docker Hub on every run — which can take 45 minutes depending on network conditions.

By mirroring the image locally, the pull happens at LAN speed and reduces this step to a few seconds.

Usage

In your Gitea Actions workflow, point setup-qemu-action to this mirror:

- name: Set up QEMU
  uses: docker/setup-qemu-action@v3
  with:
    image: git.mrunk.de/mrunknownde/binfmt:latest

Full example workflow with multi-platform build:

- uses: actions/checkout@v4

- name: Set up QEMU
  uses: docker/setup-qemu-action@v3
  with:
    image: git.mrunk.de/mrunknownde/binfmt:latest

- name: Set up Docker Buildx
  uses: docker/setup-buildx-action@v3
  with:
    cache-binary: true

- name: Build and push
  uses: docker/build-push-action@v5
  with:
    platforms: linux/amd64,linux/arm64
    push: true
    tags: your-registry/your-image:latest

Keeping the Mirror Up to Date

This repo includes an automated workflow that re-mirrors the image every Monday at 03:00 UTC.

To trigger a manual update:

  1. Go to Actions in this repository
  2. Select Mirror QEMU Image
  3. Click Run workflow

Mirror Workflow

name: Mirror QEMU Image

on:
  schedule:
    - cron: '0 3 * * 1'
  workflow_dispatch:

jobs:
  mirror:
    runs-on: ubuntu-latest
    steps:
      - uses: docker/login-action@v3
        with:
          registry: git.mrunk.de
          username: ${{ secrets.REGISTRY_USERNAME }}
          password: ${{ secrets.REGISTRY_TOKEN }}

      - name: Mirror tonistiigi/binfmt
        run: |
          docker pull tonistiigi/binfmt:latest
          docker tag tonistiigi/binfmt:latest git.mrunk.de/mrunknownde/binfmt:latest
          docker push git.mrunk.de/mrunknownde/binfmt:latest

Credits

Original image: tonistiigi/binfmt — MIT License

S
Description
No description provided
Readme 26 KiB