docker 运行后端项目出错,查看日志,错误信息为:Error: Unable to access jarfile /xxx/xxx.jar
原因: 创建镜像时使用的Dockerfile 里的 jar包路径与 宿主机目录映射路径不一致
Dockerfile 中:
ENTRYPOINT ["java","-jar","/temp/yudao-server.jar","--spring.config.additional-location=/data/java/config/application-dev.yaml"]
运行镜像时的:
docker run -d -p 48080:48080 --name aqxmserver -v /home/docker/server:/tmp -v /home/docker/server/config:/data/java/config serverimg
可以看到 一个是 /temp 一个是tmp,由于都是长段的命令代码,不仔细看容易忽略
解决:
改为一致即可
经验教训:
最开始去找是不是文件权限,selinux 等其他原因,对自己写的命令过于自信,只是粗略观察,事实上,通过搜索引擎结果可知造成这个报错最多的原因就是文件名,目录名写错导致,还是应该把最大的精力放在检查 最可能的原因上.