我有一个简单的.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,但是无法安装和阻止文件和目录登陆容器,这似乎不太可行。
如何防止这些目录在容器中可用?
答案 0 :(得分:1)
.dockerignore
文件将修改发送到docker守护程序以构建映像的上下文。因此,除非您重新创建它们,否则创建的图像将不会包含这些文件。
卷安装是完全独立的,主机卷安装(也就是绑定安装)会将主机目录的内容直接映射到容器中。这是一个Linux操作系统级活动,不遵循.dockerignore
。
您需要从安装到容器中的目录中排除这些文件,或者不将卷装入容器并依赖图像来利用.dockerignore
。