ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref,找不到容器的目录
Dockerfile制作Springboot docker镜像时,提示容器的目录不存在,其实是Dockerfile的注释导致的,注释不要放在命令的后面。
今天在使用k8s搭建微服务,在制作Springboot的docker镜像时用Dockerfile来创建镜像,没有创建成功,报错如下:
ERROR: failed to solve: failed to compute cache key: failed to calculate checksum of ref 13783d4a-f6a5-4af1-b4a0-750c312ebf66::zj0c1ggisjskzgb4d22u7iwcg: "/app": not found
我的Dockerfile文件内容大概长这个样子:
1.FROM openjdk:11
2.ADD exmaple.tar /app
3.COPY example.sh /app #不同应用需要修改
4.COPY example-SNAPSHOT.jar /app #不同应用需要修改
报错的意思是我的容器里不存在/app目录,但里面确实是存在这个目录的,百思不得其解,我用了排除法。将第3行和第4行注释掉,如下图所示:
1.FROM openjdk:11
2.ADD exmaple.tar /app
3.#注释掉 COPY example.sh /app #不同应用需要修改
4.# 注释掉了 COPY example-SNAPSHOT.jar /app #不同应用需要修改
然后再build,居然成功了。证明了/app这个目录是存在的,为何会报错说不存在/app目录。
于是又继续用排除法,将第4行注释掉,第三行的注释去掉。如下图所示:
1.FROM openjdk:11
2.ADD exmaple.tar /app
3.COPY example.sh /app #不同应用需要修改
4.# 注释掉了 COPY example-SNAPSHOT.jar /app #不同应用需要修改
继续build,同样是报错找不到/app目录。why?????
去百度,谷歌了很多博主写的这个问题,反馈的都是宿主机的目录不存在,依然找不到答案。
后来再仔细的看了Dockerfile的内容,一个想法冒出来了,是不是后面的注释导致的?
于是我将注释去掉了,如下所示:
1.FROM openjdk:11
2.ADD exmaple.tar /app
3.COPY example.sh /app
4.COPY example-SNAPSHOT.jar /app
再次build,成功了!!!!
真实巨坑啊,注释不能放在后面,必须另起一行!!!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)