今天上午用Dockerfile构建的时候出现了一个问题
COPY failed: file not found in build context or excluded by .dockerignore: stat libcrypto.so.1.0.0: file does not exist
问题复现:
可以看到我这个文件其实是存在的,但是我在构建的时候copy失败说找不到
其实就是自己的一个习惯问题,本人习惯使用ls查看目录,但是其实现在开始我也要修正 多使用 ll 去查看
ll 之后你会发现 我这个是一个指向 这跟我复制的习惯也有关系 习惯性的使用了 cp -r
那么在这种情况下 Dockerfile的ADD是识别不到的
问题解决:
1、找到原文件,重新复制过去 保证是没有这个指向路径的就没问题了 如图上蓝色部分就是没有指向的
这种情况Dockerfile 构建的时候就可以了
2、将Dockerfile 中 的ADD 改为 ADD -L
如果使用 -L 选项,并将包含软链接的文件复制到 Docker 镜像中,那么复制进去的文件是不会自带软链接的。
实际上,使用 -L 选项可以将软链接解析为其指向的文件,并将该文件复制到镜像中。也就是说,复制进去的文件不再是软链接,而是软链接指向的实际文件。
问题本质:
其实就是文件权限问题 这是个软链接指向。