文档说是的,它可以.
https://docs.docker.com/engine/reference/builder/
您甚至可以使用.dockerignore文件来排除Dockerfile和.dockerignore文件.这些文件仍然发送到守护程序,因为它需要它们来完成它的工作.但ADD和COPY指令不会将它们复制到图像中.
但是当我把dockerfile放在.dockerignore中时,我得到了
Sending build context to Docker daemon 1.646MB
Error response from daemon: Cannot locate specified Dockerfile: Dockerfile
Run Code Online (Sandbox Code Playgroud)
TJ *_*dle 11
是的你可以; 你甚至可以把.dockerignore
它扔进去!
你可能做错了什么 - 可能在错误的目录中?
目录列表:
? ls -la
total 16
drwxr-xr-x 4 tj wheel 128 Nov 30 13:42 .
drwxrwxrwt 7 root wheel 224 Nov 30 13:42 ..
-rw-r--r-- 1 tj wheel 26 Nov 30 13:41 .dockerignore
-rw-r--r-- 1 tj wheel 28 Nov 30 13:42 Dockerfile
Run Code Online (Sandbox Code Playgroud)
文件内容:
? cat .dockerignore
.dockerignore
Dockerfile
? test_docker_ignore cat Dockerfile
FROM ubuntu:16.04
ADD . .
Run Code Online (Sandbox Code Playgroud)
建一次; 指定--no-cache
为详细:
? docker build -t test --no-cache .
Sending build context to Docker daemon 3.072kB
Step 1/2 : FROM ubuntu:16.04
---> 20c44cd7596f
Step 2/2 : ADD . .
---> 4d8ded297954
Successfully built 4d8ded297954
Successfully tagged test:latest
Run Code Online (Sandbox Code Playgroud)
添加内容Dockerfile
并重建:
构建将使用缓存,因为它忽略了对其所做的更改Dockerfile
? echo "# A Test Comment" >> Dockerfile
? docker build -t test .
Sending build context to Docker daemon 3.072kB
Step 1/2 : FROM ubuntu:16.04
---> 20c44cd7596f
Step 2/2 : ADD . .
---> Using cache
---> 4d8ded297954
Successfully built 4d8ded297954
Successfully tagged test:latest
Run Code Online (Sandbox Code Playgroud)
该问题不久前被编辑过,我没有注意到。原来的问题更准确地反映了我所缺少的知识和我遇到的问题,我已经恢复到那个版本。
Docker 在某种程度上同等对待名称“dockerfile”和“Dockerfile”。即,您可以将其称为“dockerfile”,并且如果您执行类似的操作,docker 仍会自动使用它docker build -t blah .
。但是,如果您随后放入dockerfile
.dockerignore 文件,它就不再知道如何自动构建图像,您将得到
Error response from daemon: Cannot locate specified Dockerfile: Dockerfile
归档时间: |
|
查看次数: |
5415 次 |
最近记录: |