如何在构建Docker镜像时加入动态库(.so)
平时在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