Přejít na obsah

arm64 bez QEMU

Multi-architekturní sestavení obrazu

Sestavte každou architekturu na nativním hardwaru a publikujte jeden seznam manifestů. Žádná penalizace za emulaci.

Všude domorodec

amd64 staví na amd64, arm64 staví na arm64. Tak, jak to mělo být.

Jeden manifest

Digesty se spojí do jediné značky, kterou spotřebitelé normálně táhnou.

5×–40× rychlejší

Kolik přesně závisí na tom, jak moc se váš obrázek zkompiluje.

Emulace QEMU je výchozí cestou pro sestavení s více oblouky a to je důvod, proč tolik týmů tiše upustilo od podpory arm64. Emulace celého řetězce nástrojů kompilátoru je tak pomalá, jak to zní.

Časté dotazy

Proč je QEMU o tolik pomalejší?
Za běhu překládá každou instrukci arm64 do x64, takže penalizace se rovná počtu instrukcí, které vaše sestava provede. Obraz zkopírovaný do souboru je asi 3× pomalejší; sestavení Rust nebo C++ je 35–40× pomalejší.
Jak mohu publikovat jednu značku pro obě architektury?
Sestavte každou architekturu na jejím vlastním nativním běhu, push by digest a poté se spojte s docker buildx imagetools. Spotřebitelé normálně táhnou za značku.
Potřebuji samostatné mezipaměti pro každou architekturu?
Ano, a jsou automaticky odděleny. Zahrnout runner.arch také do všech akcí/klíče mezipaměti nebo x64 cache obnovená na arm64 vytváří spíše matoucí chyby linkeru než čisté chybění.

Váš další build může být dvakrát rychlejší za poloviční cenu

Začněte zdarma. Odchod je tentýž jeden řádek a i ten diff zveřejňujeme.