这是我的问题:我想在构建名为django. 但是在玩Dockerfile.dockerignore文件时,我没有成功我想要的,我不知道要采用哪种语法来做到这一点。
回购结构如下:
.
└── root_dir
├── django
│ ├── Dockerfile
│ ├── Dockerfile.ignore
│ └── stuff
├── documentation
│ └── stuff
├── useless dir
└── another useless dir
我docker-compose.yml用来构建的内容如下:
version: '3.5'
services:
[...]
django:
build:
context: $ROOT_DIR
dockerfile: $ROOT_DIR/django/Dockerfile
[...]
如您所见,上下文是root_dir而不是django(因为我需要documentation在构建时从 dir 复制一些东西)。
构建图像时我需要什么:
- django 代表
- 文档代表
构建图像时我想忽略的内容:
- 除了目录之外
django的所有内容documentation - Dockerfile 和 Dockerfile.dockerignore
- 还有一些其他的东西(虚拟环境等
*.pyc,但我们会坚持这个问题!)DockerfileDockerfile.dockerignore
为了这样做,我的Dockerfile.dockerignore样子:
# Ignore everything
*
# Allows django and documentation rep (context is root of project)
!/django
!/documentation
# Ignoring some files
**/Dockerfile
**/Dockerfile.dockerignore
但我的问题是我想忽略的文件仍然存在于我的图像中!这对我不利。我想我尝试了任何可能的语法 ( **/, */*/......) 但我找不到适合我需要的语法。
如果你能帮助我,非常感谢!
编辑:对于那些想知道该Dockerfile.dockerignore文件的人,您可以在这里查看:https ://docs.docker.com/engine/reference/commandline/build/#use-a-dockerignore-file