
私はコンテナ内にソフトウェアを構築し (Podman を使用)、そのバイナリをホスト上で実行したいと考えています。バイナリは、ホスト上にないいくつかの動的ライブラリにリンクされています。コンテナのファイルシステムをホストにマウントし、バイナリにその中のライブラリを検索させる (たとえば を使用LD_LIBRARY_PATH
) という簡単なハッキングソリューションを考えました。
ホスト上でコンテナのファイルシステムをマウント/表示するにはどうすればいいですか?
答え1
プログラムとその依存ライブラリを含むカスタム パッケージを作成します。rpm、deb、apk など。これらを、rpm をビルドするための mock などの最小限の chroot でビルドします。ホストにインストールします。このようなパッケージ化には、リンカーを変更する必要がないなどの利点があります。
そのコンテナ イメージを本当に使用したい場合は、別のコンテナのベースとして再利用する方が自然です。
はい、イメージをどこかにマウントし、関連するライブラリを にシンボリックリンクすることは可能です /usr/local/lib64
。ただし、そうすると、このアプリケーション用の別のストレージの複雑さが増し、コンテナ (podman) やサンドボックス化されたアプリケーション (snap、flatpak) のセキュリティ上の利点がなく、非標準のメンテナンス手順が必要になります。