【发布时间】:2020-06-28 00:35:38
【问题描述】:
考虑以下典型的python 项目结构:
fooproject
- main.py
- src/
- test/
- logs/
- Dockerfile
- .dockerignore
- README.md
.dockerfile 应防止 test/ 和 logs/ 目录包含在 docker 映像中。
test/
logs/
Dockerfile的内容是
FROM ubuntu16.04
COPY . /app/
WORKDIR /app
USER root
RUN pip install -r requirements.txt
ENTRYPOINT ["main.py"]
但是,当通过 PyCharm 的自动 docker 集成运行时,test 和 logs 目录都被复制到容器中。 PyCharm 运行命令结束如下:
7eb643d9785b:python -u /opt/project/main.py
我尝试了一些无济于事的方法,例如在应用程序其余部分上方的目录中复制.dockerignore。例如:
COPY . /app/
COPY .dockerignore .dockerignore
WORKDIR /app
想知道 PyCharm 的 /opt/project 是否会以某种方式干扰?那么.dockerignore 在这样的项目中究竟应该放在哪里?
更新
我将docker container inspect 的输出分享给了BMitch,他能够找到解决方案。 PyCharm 在容器设置运行配置中自动挂载卷
【问题讨论】:
-
如果你在dockerignore中有/logs,用logs或者logs/替换它
-
谢谢,但我已经把它作为
logs/了 -
它们是包含在构建的映像中,还是仅通过卷可用?为您的容器 ID/名称包括
docker container inspect输出。 -
@BMitch 谢谢 - 所以我确实运行了这个命令,但是因为它可能包含敏感信息而犹豫是否要在 SO 上发帖。我具体在寻找什么?如果你愿意,我可以 PM 给你
-
在非敏感环境中重新创建问题并发布整个内容。任何 IP 地址都是不可路由的/内部的。