AlpineがUbuntuまたはDebianパッケージをインストールできるかどうか尋ねたいです。私はAlpineがmuslを使用し、Debianがglibcを使用していることを知っています。大きな努力がなくても可能かどうか疑問に思います。以前はUbuntuで実行されていたサーバーをAlpineに移植しようとしましたが、Nginx sub_filterはAlpineバージョンのNginxでは利用できず、そのモジュールが必要であることに気づきました。
答え1
実際には、以下を.deb
使用してAlpineに軽量パッケージをインストールできます。dpkg
。ただし、.deb
パッケージに依存するすべてのファイルが必要なので、これは非常に単純な場合にのみ機能します。
AlpineでDebian / Ubuntuバイナリを実行する際の主な問題は、実際にはglibcとmusl libcの非互換性です。この問題には複数のレベルでアクセスできます。
より軽いglibc互換性のためにインストールしてみてください
libc6-compat
。これはいくつかのglibcインターフェイスとスタブを提供するmuslを囲む薄いラッパーです。しかし、複雑なglibcアプリケーションでは動作しません。完全なglibc互換性のために、@FederalReserveが提案したように、Alpineコンテナにglibcをインストールできます。これは実際にシンプルで一般的なプロセスです。例をご覧ください。ドッカーファイル。 glibc は Alpine イメージに数 MB だけ追加します。これは、Alpineの基本イメージ自体が約5MBであることを考慮すると比較的大量ですが、絶対的なMB増加の観点からは確実に許容できます。
Alpineでローカルにソフトウェアを構築してみてください。あなたの場合、Nginx
sub_filter
はモジュールを有効にしています。しかし、Nginxの場合、どのくらいの作業が必要かわかりません(NginxビルドシステムとモジュールをAlpine Linuxに移植する必要があるかどうかによって異なります)。したがって、これは単なる提案です。