Перейти до вмісту

arm64 без QEMU

Створення зображень на основі кількох архітектур

Створіть кожну архітектуру на рідному обладнанні та опублікуйте один список маніфестів. Без штрафу за емуляцію.

Скрізь рідне

amd64 будується на amd64, arm64 будується на arm64. Так, як мало бути.

Один маніфест

Дайджести зливаються в один тег, який споживачі витягують зазвичай.

5×–40× швидше

Скільки саме, залежить від того, наскільки компілюється ваше зображення.

Часті запитання

Чому QEMU набагато повільніший?
Він перетворює кожну інструкцію arm64 у x64 під час виконання, тому штраф залежить від кількості інструкцій, які виконує ваша збірка. Зображення копії файлу приблизно в 3 рази повільніше; збірка Rust або C++ у 35–40 разів повільніша.
Як опублікувати один тег для обох архітектур?
Створюйте кожну архітектуру на власному власному бігуні, надсилайте дайджест, а потім об’єднуйте з докером buildx imagetools create. Споживачі тягнуть бирку нормально.
Чи потрібні мені окремі кеші для кожної архітектури?
Так, і вони розділені автоматично. Додайте також runner.arch до будь-якого ключа дій/кешу, інакше кеш x64, відновлений на arm64, вироблятиме незрозумілі помилки компонування, а не чистий промах.

Ваш наступний білд може бути вдвічі швидшим і вдвічі дешевшим

Почніть безкоштовно. Піти — це той самий один рядок, і цей diff ми теж публікуємо.