[英]Specifying -Djava.library.path in JIB plugin
我正在尝试使用 pom.xml 中的以下配置运行 JIB 插件
<configuration>
<from>
<image>{artifactory-location}/container-release/managedbaseimages/oracle-jdk:11-stable</image>
</from>
<to>
<image>{artifactory-location}/container-sandbox/abc/bot-sample-image</image>
</to>
<container>
<creationTime>${maven.build.timestamp}</creationTime>
<jvmFlags>
<jvmFlag>-Djava.library.path=.</jvmFlag>
<jvmFlag>-Dlog4j2.configurationFile=log4j2_default.xml</jvmFlag>
</jvmFlags>
<!--<args>-->
<!-- <arg>-Djava.library.path</arg>-->
<!-- <arg>.</arg>-->
<!--</args>-->
</container>
</configuration>
当我尝试 docker 运行图像时,我面临以下错误,尽管文件夹中存在 jni.so 文件(我也尝试提供不同的文件夹位置):
ERROR StatusLogger Reconfiguration failed: No configuration found for '4b85612c' at 'null' in 'null'
22:02:21.085 [main] ERROR TRACE.Casp - no casp_jni in java.library.path: [.]
java.lang.UnsatisfiedLinkError: no casp_jni in java.library.path: [.]
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2660) ~[?:?]
at java.lang.Runtime.loadLibrary0(Runtime.java:827) ~[?:?]
at java.lang.System.loadLibrary(System.java:1871) ~[?:?]
该应用程序运行良好,我使用以下方法运行:
java -Djava.library.path=. -jar bot_sample.jar
容器入口点设置为[java, -Djava.library.path=., -Dlog4j2.configurationFile=., -cp, /app/resources:/app/classes:/app/libs/*, com.abc.def.bot.Main]
我能够通过将基本映像更改为:containerregistry-na.jpmchase.net/container-release/managedbaseimages/openjdk/jre:11-stable 来解决这个问题
并使用以下命令将.so 文件从我的本地复制到 /usr/lib:
<extraDirectories>
<paths>
<path>src/main/java/native</path>
<path>
<from>src/main/java/native</from>
<into>/usr/lib</into>
</path>
</paths>
</extraDirectories>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.