编译库跟平台有关,linux不是同通的
我用ubuntu编译的,结果我跑的容器系统是alpine linux,但是跑了会报错。于是我在alpine linux的容器里进行编译,就可以了。
系统找库的路径,你得告诉系统
前面文章说到,System.load和System.loadLibrary两个方法的区别
java jni开发,System.loadLibraryt()和System.load()区别是什么?
我用的是System.load绝对路径,确定有的。比如说我加载了A库,但是A库又依赖于B库,即使你放在同一个文件夹下,也是找不到的。
要告诉系统去哪里找库:设置环境变量
ENV LD_LIBRARY_PATH=/opt/libs
我是在Dockerfile里设置的
k8s 容器挂了重启,日志难搞到
这个问题因为我是JNI调用,有错误日志输出到了特定的文件里,但是重启了又没有了。方法 应该还是有的。把数据映射到外部的目录里。
我直接写了个docker-compose.yaml,单独映射出来,并且修改为重启的策略为never.
这样我就可以搞到日志分析了。