Исправить сборку образов контейнеров Docker для серверов на архитектуре arm64 #267
Labels
No labels
client
codex
community/discord
community/monitoring
community/site
community/telegram
docs
infra
mods/client
mods/fantasy
mods/server
mods/tech
server/limbo
server/lobby
server/mods
server/proxy
server/survival
system
type
bug
type
feature
type
hotfix
type
suggestion
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
bebrashield/task-tracker#267
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Предыстория
Мы используем Docker для развёртывания компонентов: сервера прокси, лимбо, лобби, ванила, моды. Их сборка автоматизирована средствами Forgejo Actions: после слияния изменений в базовые ветки запускается скрипт сборки и публикации в реестр. Для старта сборки нужно указать под какую архитектуру процессора должен быть собран образ контейнера.
Архитектура процессора виртуальной машины, на которой развёртываем (Oracle Compute Instance) - aarch64 (arm64). Архитектура процессора виртуальной машины, на которой запускается Forgejo Actions - amd64 (x86_64). Для сборки образа контейнера на процессоре одной архитектуры под процессор другой архитектуры нужно использовать виртуализацию.
Проблема
Установка платформы виртуализации QEMU для архитектуры arm64 завершается с ошибкой. Вывод установленных архитектур QEMU и Docker Buildx показывает только платформы x86. Но образы контейнеров под arm64 успешно собираются и публикуются в рееестр.
Задача
Сохраняю текст ошибки, чтобы не утатрить доступ к логу Actions:
Установка архитектурных типов отличных от системы-хоста завершается неудачей из-за того, что Docker контейнер среды выполнения конвеера и lxc контейнер (поверх Proxmox VE, хост для Forgejo Runner) запущены в непривилегированном режиме.
https://docs.docker.com/build/building/multi-platform
https://pve.proxmox.com/pve-docs/chapter-pct.html#_unprivileged_containers
Сборка образов Docker контейнеров серверов (server-survival, server-mods) происходит успешно из-за того, что базовый образ Docker контейнера (sapmachine) уже собран под используемые нами архитектуры.
Убираем docker/setup-qemu-action из конвееров сборки.