README.md hinzugefügt

This commit is contained in:
2026-05-26 16:21:09 +02:00
parent aecbed97db
commit 175e8643df
+84
View File
@@ -0,0 +1,84 @@
# 🪞 QEMU binfmt Mirror
A mirror of [`tonistiigi/binfmt`](https://github.com/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:
```yaml
- 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:
```yaml
- 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
```yaml
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`](https://github.com/tonistiigi/binfmt) — MIT License