当我尝试构建以下(简单(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
此问题的最常见原因是:
-
不正确的路径
-
在您的
.dockerignore
中有docker-builder
我在使用 docker-compose.yml 带有以下目录结构时找到了相同的错误消息。我通过更新 docker-compose.yml 中的dockerfile路径来修复它。
。.docker
├── basic.conf
├── Dockerfile
我的
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/