Naar inhoud springen

Runners

Multi-platform Docker-builds

Bouw linux/amd64- en linux/arm64-images native op hun eigen architectuur en push een enkele manifestlijst.

Specificaties

Strategie
Native per-arch, geen QEMU
Uitvoer
OCI-manifestlijst
Versnelling versus QEMU
5× – 40×

Runner-labels

  • runnerhut-docker-builder
  • runnerhut-docker-builder-arm

Er zijn twee manieren om een ​​afbeelding met meerdere bogen te maken. Men emuleert arm64 op een x64-host met QEMU en is catastrofaal traag voor alles dat compileert. De andere bouwt elke architectuur op zijn eigen hardware en voegt de resultaten samen in een manifestlijst.

yaml
jobs:
build:
strategy:
matrix:
include:
- platform: linux/amd64
runner: runnerhut-8vcpu-ubuntu-2404
- platform: linux/arm64
runner: runnerhut-8vcpu-ubuntu-2404-arm
runs-on: ${{ matrix.runner }}
steps:
- uses: docker/build-push-action@v6
with:
platforms: ${{ matrix.platform }}
outputs: type=image,push-by-digest=true
 
merge:
needs: build
runs-on: runnerhut-2vcpu-ubuntu-2404
steps:
- run: docker buildx imagetools create -t ghcr.io/acme/api:latest \
ghcr.io/acme/api@${{ needs.build.outputs.digest }}
Bouw per boog per samenvatting en voeg vervolgens samen

Je volgende build kan twee keer zo snel zijn, voor de halve prijs

Begin gratis. Weggaan is dezelfde ene regel, en die diff publiceren we ook.