一、问题
通常我们会在 Dockerfile 文件所在的文件夹下执行 docker build 命令创建镜像,如下:
docker build -t ${image_name} .
通过此方式创建镜像的时候,需要注意的是如果在 Dockerfile 中使用 COPY 命令,那只能 COPY 与 Dockerfile 文件处于同一目录下的文件或者或者文件夹。如果我们要 COPY 不与 Dockerfile 文件处于同一目录下的文件或者或者文件夹在会报错,如下:
COPY failed: stat xxxx: no such file or directory
二、解决方案一
最简单的方案是,将所有涉及到的文件或者文件夹与 Dockerfile 放在同一个目录下,这样 COPY 命令就能找到文件或者目录了。
三、解决方案二:
无须进入到 Docerfile 文件所在目录,通过 “docker build -f xxx/xxx/xxx .” 中的 “-f” 来指定 Dockerfile 的完整路径,来解决这个问题。