わかりました、jib docker イメージの作成中にリンクの問題が発生しました。必要なファイルをコンテナにコピーします
jib {
allowInsecureRegistries = true
extraDirectories{
paths{
path{
from = file('jnetpcap/jib')
into = '/native'
}
}
}
.
.
.
そして他のタスクでは、それらのライブラリを指します
task cmdScript(type: CreateStartScripts) {
mainClassName = "cic.cs.unb.ca.ifm.Cmd"
applicationName = "cfm"
outputDir = new File(project.buildDir, 'scripts')
classpath = jar.outputs.files + project.configurations.runtime
defaultJvmOpts = ["-Djava.library.path=/native"]
}
確認したところ、これらのライブラリはコンテナーに正しく追加されています。ライブラリのコピーではなく、リンカのセットアップの問題です。
cmdScript は distTar でプロジェクトをビルドすると正しいリンカを設定しますが、jibDockerBuild でビルドする場合のリンカの設定方法がわかりません。ここで私の問題に対する答えが見つからなかったので、SO で助けを求めることにしました。
アップデート
ここでいくつかの手がかりを見つけました。追加してジブタスクを更新しました
jib {
allowInsecureRegistries = true
extraDirectories{
paths{
path{
from = file('jnetpcap/jib')
into = '/native'
}
}
}
container.jvmFlags = ["-Djava.library.path=/native/*"]
しかし、同じエラーが発生し続けます。
エラーメッセージは
exception in thread main java.lang.unsatisfiedlinkerror 'long com.slytechs.library.NativeLibrary.dlopen(java.lang.String)'