
Я собрал некоторое программное обеспечение в контейнере (используя Podman) и хотел бы запустить двоичный файл на своем хосте. Двоичный файл связан с некоторыми динамическими библиотеками, которых нет на моем хосте. Я подумал, что быстрое хакерское решение — смонтировать файловую систему контейнера на моем хосте и заставить двоичный файл искать библиотеки там (например, с помощью LD_LIBRARY_PATH
).
Как я могу смонтировать/увидеть файловую систему контейнера на моем хосте?
решение1
Напишите пользовательские пакеты для включения программы и ее зависимых библиотек. rpm, deb, apk и т. д. Соберите их в минимальном chroot, например, mock для сборки rpm. Установите на хост. Такая упаковка имеет преимущества, в том числе отсутствие необходимости менять компоновщик.
Если вы действительно хотите использовать это изображение контейнера, было бы более естественно повторно использовать его в качестве основы другого контейнера.
Да, можно смонтировать образ где-нибудь и, возможно, сделать символическую ссылку на соответствующие библиотеки в /usr/local/lib64
. Однако это добавляет сложность отдельного хранилища для этого приложения, без преимуществ безопасности контейнера (podman) или изолированного приложения (snap, flatpak), с нестандартными процедурами обслуживания.