当我尝试构建以下(简单)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
不会改变任何事情。
有人在这里有解决方案吗?
答案 0 :(得分:2)
此问题的最常见原因是:
路径错误
在您的.dockerignore
答案 1 :(得分:1)
我的目录如下
.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
答案 2 :(得分:1)
一切顺利-进一步澄清,因为我需要它,我花了一些时间自行解决:
在Dockerfile中添加ADD后,您需要位于相对于要添加的位置的目录中,而不是相对于Dockerfile的目录中。
ADD directory1\directory2\filename.jar app.jar
您的文件结构是:
home
|-directory1
|-directory2
使用时需要在家中
docker build . -f filepathToDocker/Dockerfile
我想这对于COPY也是正确的,但是我还没有测试过。
答案 3 :(得分:0)
好的,对我而言,它使用了docker build . -f Dockerfile
而不是docker build - < Dockerfile
(顺便提一下这是官方的码头工作文档:https://docs.docker.com/engine/reference/commandline/build/#tarball-contexts)。解决方案取自github:https://github.com/moby/moby/issues/34986#issuecomment-343680872
答案 4 :(得分:0)
当我在Ubuntu机器上运行docker时,我也遇到了同样的错误。我可以通过在ADD指令中的源文件之前提到$ {pwd}来解决它。
在这里,我不得不复制应用程序&#39;从/ home / arun / ks /到/在容器中。
所以,我在Dockerfile中做了如下更改。
添加$ {PWD} / apps / apps
然后我从源文件的位置而不是Dockerfile的位置构建了docker镜像。
$ pwd
/家庭/阿伦/ KS /
$ ls 应用程序网站
$ sudo docker image build -t image-name。 -f path-to-the dockerfile
在这里,我们应该同时使用两者。和-f选项。