打包现有Java工程的Jar到Docker镜像,也是遇到了问题。
不熟悉Dockerfile
COPY 源 目标
一开始把源和目标的顺序给弄反了,但是还在镜像中有那个文件,结果执行java -jar xxx.jar
老提示Error: Unable to access jarfile xxx.jar
。最后登录到容器内部发现jar的文件大小不对,最后才反应过来把顺序弄反了。
登入容器内部
一开始为了诊断Java运行Jar文件不成功的问题,我就想看看容器内的文件是否已经在。最后用如下命令,登入容器,这个还是比较有用,不过应该去掉镜像的CMD
命令。
1 | docker run -t -i xxx_container /bin/bash |
镜像大小
一开始用的FROM openjdk:8
,打出的镜像有800多M,后来使用FROM openjdk:8-jdk-alpine
,大小150多M,我的Jar包实际只有不到50M的样子,所以还是比较大了。