Java Snappyのネイティブライブラリ(JNIを介してロードされる)は、glibcに対してコンパイルされます。 Alpine Linux(コンテナのベース)は、ソース互換であるがバイナリ互換ではないmusl libcを使用します(基本的に、ネイティブライブラリをmuslに対してコンパイルすると機能しますが、glibcに対してコンパイルすると機能しません) muslを使用)。
3つのオプションがあります:
-
java-snappy-native
をインストールします (musl用に構築されたネイティブライブラリが含まれています)Alpineコンテナに入れ、org.xerial.snappy.use.systemlib=true
を設定します (プレインストールされたネイティブライブラリを使用するようにJavaライブラリに指示します)。現在、snappy
もインストールする必要があります 誰かがその依存関係を上記のパッケージに追加できなかったためです。 - glibcでベースコンテナを使用する
- Alpineコンテナにglibcをインストールします(実際には推奨されません)