Для настройки Dockerfile для кроссплатформенной сборки образов можно использовать плагин buildx. 2 Он позволяет создавать несколько инстанций строителя, выполнять задачи сборки параллельно на нескольких узлах и строить образы для разных платформ. 2
Некоторые шаги настройки:
- Создать инстанцию строителя. 1 Кроссплатформенная сборка поддерживается только при использовании BuildKit с драйверами docker-container и kubernetes. 1
- Указать целевые платформы. 23 Для этого в команде сборки используется аргумент --platform. 3 Это позволяет Docker скачивать соответствующие образы для каждой платформы. 3
- Использовать переменные для указания платформы. 1 Вместо постоянного значения платформы лучше использовать переменные, например FROM --platform=$BUILDPLATFORM. 1
- При вызове процесса компилятора передать ему параметр. 1 Он настроит возврат артефактов для реальной целевой архитектуры. 1
При сборке кроссплатформенного образа Dockerfile фактически собирается один раз для каждой платформы. 1 В конце сборки все эти образы объединяются в один мультиплатформенный образ. 1