今天在使用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,成功了!!!!
真实巨坑啊,注释不能放在后面,必须另起一行!!!