平时在Linux上需要添加项目的动态库文件只需要把.so文件放入/lib64/下并执行ldconfig命令就可以让程序识别到动态库文件,但我们通过Dockerfile执行相同操作时却无法正常加载动态库文件:

FROM openjdk:8u302-jdk

# 安装动态库文件
ADD resources/lib64/ /lib64/
RUN ldconfig

虽然镜像能构建但是代码加载时却出错,进入容器通过ldconfig -v 也无法找到对应的动态库,还好我们可以通过容器LD_LIBRARY_PATH 环境变量解决该问题:

FROM openjdk:8u302-jdk

# 安装动态库文件
ADD resources/lib64/ /usr/local/myso/
ENV LD_LIBRARY_PATH=/usr/local/myso/:$LD_LIBRARY_PATH