使用.dockerignore忽略文件和目录

时间:2018-05-02 13:20:43

标签: docker docker-compose

我有一个简单的.dockerignore文件,其中包含以下内容:

.git/
.idea/
venv/

我的docker-compose.yml文件装入卷:

version: "3"
services:
  frontend:
    build: .
    command: ["gunicorn", "--bind", "0.0.0.0:8000",  "project.app:create_app()"]
    env_file:
      - .env
    volumes:
      - .:/frontend
    ports:
      - "8000:8000"

也许我不了解.dockerignore文件的完整语法或意图,但在运行docker-compose up --build.git/.idea/和{{1}之后最终进入我的容器。

我已经阅读并看到了this,但是无法安装和阻止文件和目录登陆容器,这似乎不太可行。

如何防止这些目录在容器中可用?

1 个答案:

答案 0 :(得分:1)

.dockerignore文件将修改发送到docker守护程序以构建映像的上下文。因此,除非您重新创建它们,否则创建的图像将不会包含这些文件。

卷安装是完全独立的,主机卷安装(也就是绑定安装)会将主机目录的内容直接映射到容器中。这是一个Linux操作系统级活动,不遵循.dockerignore

您需要从安装到容器中的目录中排除这些文件,或者不将卷装入容器并依赖图像来利用.dockerignore