我有一个简单的.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/和venv/最终出现在我的容器中。
我已经阅读并看到了this,但似乎无法挂载和阻止文件和目录在容器中登陆是不可行的。
如何防止这些目录在容器中可用?
发布于 2018-05-02 13:36:40
.dockerignore文件将修改发送到码头守护进程以生成映像的上下文。因此,除非您重新创建这些文件,否则所创建的图像中不会包含这些文件。
卷挂载是完全独立的,主机卷挂载(也称为绑定挂载)将直接将主机目录的内容按原样映射到容器中。这是一个不遵循.dockerignore的Linux级别活动。
您需要将这些文件从装入容器的目录中排除,或者不将卷挂载到容器中,并依赖映像来利用.dockerignore。
https://stackoverflow.com/questions/50135714
复制相似问题