Debian基础镜像缺少函数库so依赖
- 1、进入一个可以访问互联网的运行的容器服务
- 2、执行下面shell代码,替换原有的镜像源
- 3、下载对应的依赖包(本依赖包解决缺少字体库问题)
- 4、通过docker cp命令拷贝下载的依赖包文件到本地
- 5、修改打包的Dockerfile文件,然后正常打包即可,样例如下:
1、进入一个可以访问互联网的运行的容器服务
docker exec -it 容器ID /bin/bash
2、执行下面shell代码,替换原有的镜像源
mv test test.back
cat << EOF > test
deb http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
EOF
apt-get update
3、下载对应的依赖包(
本依赖包解决缺少字体库问题)
# 依赖包存储的位置:/var/cache/apt/archives/
apt-get install fontconfig -d
4、通过docker cp命令拷贝下载的依赖包文件到本地
docker cp 容器ID:/var/cache/apt/archives/*.deb /home/fontconfigDeb
5、修改打包的Dockerfile文件,然后正常打包即可,样例如下:
FROM sailing.com/debian:1.0.2
VOLUME /usr/lib/jvm/default-jvm
VOLUME /DIPFB/application
VOLUME /tmp
COPY ./fontconfigDeb /fontconfigDeb
RUN ls -al /fontconfigDeb && apt-get install /fontconfigDeb/*.deb
ENV JAVA_HOME /usr/lib/jvm/default-jvm
ENV PATH ${PATH}:${JAVA_HOME}/bin
ADD alarm-center-V1.0.jar /DIPFB/application/app.jar
#该端口为自定义端口,与配置文件中的server.port值一致
EXPOSE 2001
#jar 运行命令 java -Djava.security.egd -jar /app.jar, -Djava.security.egd表示自启动的意思
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-XX:+UseG1GC","-Xmx2048m","-XX:MaxGCPauseMillis=200","-jar","/DIPFB/application/app.jar"]