首页 > 解决方案 > 如何在 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 容器中加载这个库

标签: spring-bootdocker-composejava-native-interfacejnienv

解决方案


确保安装libglib2.0-0在 Docker 容器中。一旦你在那里,请确保它处于打开状态LD_LIBRARY_PATH。请注意,您的JNI库(可能链接到gthread)必须能够在运行时看到该库。


推荐阅读