spring-boot - 如何在 Docker 容器中提供 libgthread-2.0.so.0
问题描述
我正在尝试在 Spring Boot 应用程序中加载 JNI 本机库,当我通过提供-Djava.library.path={path_to_mynativelib}
作为 VM 参数从 eclipse 运行它时,它加载正常,但是当我尝试使用docker-composeJAVA_OPTS: "-Djava.library.path={path_nativelib_inside_docker_container}"
文件运行应用程序并提供与之后相同的 VM 参数时运行应用程序,它抛出未加载的异常,即Error loading shared library libgthread-2.0.so.0: No such file or directory
,调试后我发现它libgthread-2.0.so.0
在我的主机 linux 机器的路径/usr/lib64/libgthread-2.0.so.0
中可用,为什么在 eclipse 中它不会抛出任何异常,我如何在 docker 容器中加载这个库
解决方案
确保安装libglib2.0-0
在 Docker 容器中。一旦你在那里,请确保它处于打开状态LD_LIBRARY_PATH
。请注意,您的JNI
库(可能链接到gthread
)必须能够在运行时看到该库。
推荐阅读
- php - 带有长 html 内容的 Shopify PUT API 调用
- swift - 如何创建浮动标签栏 Swift
- flutter - 未处理的异常:无效参数(scheduledDate):必须是未来的日期:“TZDateTime”的实例
- c++ - WM_MOVING,LPARAM 在气动快照上给出错误的值
- c# - 使用事件处理程序时抛出异常“在前一个操作完成之前在此上下文上启动了第二个操作”
- android - Intent 广播已通过系统广播超时
- sql - SQl根据参考表计算列值
- c# - 从配置文件中读取 Json 对象列表并在控制器中返回它总是返回 null
- python - 使用 Selenium 在网页上找不到元素
- angular - 以受控方式更新 Angular PWA:问题