Replies: 1 comment
-
найс гайд bro |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Столкнулся с проблемой, что мой макбук использует архитектуру
arm64
, тогда как более популярной являетсяx86_64
. Поэтому нам придется поддерживать обе архитектуры. В связи с этим возникла проблема создания docker образа, основанного на Linux системе, с установленной библиотекой Boost C++.Если вы попытаетесь запушить на Docker Hub какой-нибудь тег в ваш репозиторий, то вы столкнетесь с проблемой, что он будет только под вашу архитектуру (если не указывать специальную опцию
--arch
в командеdocker build
). Может показаться, что 1 тег = 1 архитектура и нужно наплодить теги, но я увидел на том же Docker Hub'е, что есть теги с несколькими архитектурами сразу. Поэтому немного погуглив нашел информацию, что каждый docker-образ хранит в специальном манифесте информацию о том, на какой архитектуре он должен быть запущен.Немного погуглив я нашел неплохой гайд по созданию таких multiarch-тегов. Вот она.
Если коротко, то нужно выполнить следующий алгоритм:
docker buildx
- специальной экспериментальной утилиты Docker'а для сборки таких образов:ubuntu:22.04
, который умеет одновременно и вarm64
иamd64
. Пусть это будет добавление библиотеки Boost:docker buildx
указав необходимые архитектуры, репозиторий и тег:docker buildx build --push --platform linux/amd64,linux/arm64/v8 --tag coolstory/ubuntu-boost:1.82 .
Примечание: не забудьте удостовериться, что репозиторий
coolstory/ubuntu-boost
создан и у вас есть к нему доступ.Таким образом, на Docker Hub будет загружен Docker образ с тегов на несколько архитектур сразу.
Beta Was this translation helpful? Give feedback.
All reactions