arm64 fără QEMU
Constructii de imagini multi-arhitectura
Construiți fiecare arhitectură pe hardware nativ și publicați o listă de manifeste. Fără penalizare de emulare.
Nativ peste tot
amd64 se bazează pe amd64, arm64 se bazează pe arm64. Așa cum ar fi trebuit să fie.
Un singur manifest
Rezumatele fuzionează într-o singură etichetă pe care consumatorii o trag în mod normal.
5×–40× mai rapid
Exact cât depinde de cât de mult se compilează imaginea ta.
Emularea QEMU este calea implicită pentru versiunile cu mai multe arcuri și este motivul pentru care atât de multe echipe au renunțat în liniște la suportul arm64. Emularea unui întreg lanț de instrumente al compilatorului este la fel de lentă pe cât pare.
Întrebări frecvente
- De ce este QEMU atât de lent?
- Traduce fiecare instrucțiune arm64 în x64 în timpul execuției, astfel încât penalizarea crește cu câte instrucțiuni execută construcția ta. O imagine de copiere a fișierului este de aproximativ 3 ori mai lentă; o versiune Rust sau C++ este cu 35–40× mai lentă.
- Cum public o etichetă pentru ambele arhitecturi?
- Construiți fiecare arhitectură pe propriul runner nativ, împingeți prin digest, apoi îmbinați cu docker buildx imagetools create. Consumatorii trag eticheta în mod normal.
- Am nevoie de cache separate pentru fiecare arhitectură?
- Da, și sunt separate automat. Includeți runner.arch și în orice cheie de acțiuni/cache, sau un cache x64 restaurat pe arm64 produce erori de linker confuze, mai degrabă decât o pierdere curată.
Următorul tău build poate fi de două ori mai rapid, la jumătate de preț
Începe gratuit. Plecarea înseamnă aceeași linie, iar acel diff îl publicăm și noi.