docker - .dockerignore在子目录上不起作用…仍然在镜像中结束

标签 docker dockerfile

基本上,我的结构如下:

project/
  src/
     .unwantedsub/
  .dockerignore

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

我尝试了以下方法:
.unwantedsub
.unwantedsub/
*.unwantedsub/
src/.unwantedsub
src/.unwantedsub/
./src/.unwantedsub

仍显示在图像中。 .dockerignore中没有其他内容。我要确保销毁图像并制作一个全新的图像,因此查看同一图像不是问题。 (我做了几次)。

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

无论如何要使它工作?

最佳答案

使用以下.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

关于docker - .dockerignore在子目录上不起作用…仍然在镜像中结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58942366/

相关文章:

docker - 由于运行状况检查失败,AWS ELB 在几分钟内终止 AWS ECS 中的 RabbitMQ 服务

postgresql - 如何将 repmgr 与 dockerized Postgresql 一起使用?

docker - 权限被拒绝安装现有卷(没有sudo)

docker - 如何不从 Docker 中的基础镜像继承标签?

node.js - 在 Docker-Compose 上运行时找不到模块

docker - 将两个Docker镜像组合为一个:NodeJS和MongoDB

Docker (compose) 无需重启即可发送到守护进程模式

docker - 使用 docker 的 Elastic Enterprise Search 7.9.0

Docker 撰写全局级别的日志记录

docker - 如何重新启动 Docker 容器/镜像/机器?