Dockerfile 的 Docker 构建显示"ADD failed - No such file or directory"



当我尝试构建以下(简单(nginx docker容器https://github.com/marvambass/docker-nginx-ssl-secure时,它总是会出现以下错误:stat /var/lib/docker/tmp/docker-builder00Whatever/basic.conf: no such file or directory

我的目录看起来像这样:

├── basic.conf
├── Dockerfile
├── entrypoint.sh
├── LICENSE
├── README.md
└── ssl.conf

作为root用户,运行命令 sudo docker build - < Dockerfile不会更改事物。有人在这里有解决方案吗?

好吧,对我而言,它努力使用docker build . -f Dockerfile而不是docker build - < Dockerfile(这是从官方Docker文档中提出的建议:/commandline/build/#tarball-contexts(。该解决方案取自GitHub:https://github.com/moby/moby/issues/34986#issuecomment-343680872

此问题的最常见原因是:

  1. 不正确的路径

  2. 在您的 .dockerignore

  3. 中有docker-builder

我在使用 docker-compose.yml 带有以下目录结构时找到了相同的错误消息。我通过更新 docker-compose.yml 中的dockerfile路径来修复它。

.docker      
├── basic.conf
├── Dockerfile

我的 docker-compose.yml 当我发现错误时看起来像这样

services:
  web:
    build:
      context: ./
      dockerfile: .docker/nginx

我通过更新 Docker-compose.yml 解决了问题。

services:
  web:
    build:
      context: ./
      dockerfile: .docker/nginx/Dockerfile

地狱铃响 - 要进一步澄清,因为我需要它,我花了一点时间才能自己弄清楚这一点:

使用dockerfile中的添加,您需要相对于添加的位置,而不是相对于dockerfile。

ADD directory1directory2filename.jar app.jar

您的文件结构是:

home
|-directory1
  |-directory2

使用时需要在家中:

docker build . -f filepathToDocker/Dockerfile

我认为复制也可能是正确的,但是我还没有测试过。

我在Ubuntu Machine中运行Docker时也出现了相同的错误。在添加指令中的源文件之前,我可以通过提及$ {PWD}来解决它。

在这里,我必须从/home/arun/ks/to/in Container中复制"应用"。

所以,我在下面进行了更改。

添加$ {pwd}/apps/apps

然后,我从源文件的位置而不是Dockerfile的位置构建了Docker映像。

$ PWD

/home/arun/ks/

$ ls应用Web

$ sudo docker映像构建-t image -name。-f途径到dockerfile

在这里,我们应该同时使用两者。和-f选项。

可能性之一是源

中的路径不正确
ADD ./directory/basic.conf /dir/

而不是

ADD basic.conf /dir/

相关内容

最新更新