首页 > 解决方案 > .dockerignore 不在子目录上工作......仍然在图像中结束

问题描述

基本上我的结构如下:

project/
  src/
     .unwantedsub/
  .dockerignore

果然,每当我构建图像时。unwantedsub/最终出现在图像中。

我尝试了以下方法:

.unwantedsub
.unwantedsub/
*.unwantedsub/
src/.unwantedsub
src/.unwantedsub/
./src/.unwantedsub

仍然出现在图像中。中没有其他内容.dockerignore。我要确保破坏图像并制作一个全新的图像,所以看同一个图像不是问题。(我做了几次)。

起作用的是移动.dockerignore到该目录然后.unwantedsub起作用。虽然希望避免.dockerignore在每个子目录中出现。

无论如何让这个工作?

标签: dockerdockerfile

解决方案


使用以下内容.dockerignore

src/.unwantedsub

效果很好。我已经做了一个完整的工作示例。在空目录中运行它。

$ mkdir -p src/.unwantedsub                                                                                                                                                                               
$ echo src/.unwantedsub > .dockerignore
$ echo FROM debian > Dockerfile
$ echo ADD . /data >> Dockerfile
$ docker build -t test  .
Sending build context to Docker daemon  4.096kB
Step 1/2 : From debian
 ---> de8b49d4b0b3
Step 2/2 : Add . /data
 ---> a15b1ddf86e4
Successfully built a15b1ddf86e4
Successfully tagged test:latest
$ docker run -it test:latest                                                                                        
root@b3c8ffc73b7f:/# ls -l data/src/
total 0

推荐阅读