0

这是我的问题:我想在构建名为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

4

1 回答 1

1

Docker 忽略文件名应该是.dockerignore 你可以在这里查看文档https://docs.docker.com/engine/reference/builder/#dockerignore-file

于 2021-08-04T08:39:16.083 回答