python - 无法将 docker 容器的工作目录挂载到主机
问题描述
我正在尝试为我的 python 应用程序构建一个 docker 容器,该容器允许编辑应用程序工作目录中的配置文件,因此我不需要在每次进行更改时都重新构建图像。
Dockerfile:
FROM python:3
VOLUME /app
COPY . /app
WORKDIR /app
RUN pip install requirements.txt
CMD ["python", "main.py"]
构建映像后,我将容器部署为
docker run -d --name app -v /path/on/host/app:/app app:latest
我在容器中收到错误,python: can't open file 'main.py': [Errno 2] No such file or directory
并且/path/on/host/app
保持为空。
我无法弄清楚我的 Dockerfile 中需要什么来完成这项工作。
更新 - 找到了解决方案
由于我只需要访问配置文件,因此我为使其正常工作所做的更改
Dockerfile:
FROM python:3
COPY . /app
WORKDIR /app
RUN pip install requirements.txt
VOlUME /app/config
CMD ["python","main.py"]
现在,当我运行容器时,我将配置复制到/path/on/host/app
docker run -d --name app --mount type=bind,source=/path/on/host/app,target=/app/config
这解决了我的问题,现在我可以更新配置并重新启动容器以应用更改。
解决方案
推荐阅读
- python - 对于循环问题:我的代码工作正常,但软件不会认为它是正确的
- javascript - d3 树形图 - 限制缩放、平移
- javascript - 尝试使用 node.js 编写 Google Cloud Function 以写入 Google Sheet
- kotlin - Companion.foo 在伴随对象中有什么区别?
- angular - 在Angular中提交表单操作后如何触发验证并获得验证结果?
- html - 如何在 django 的选项卡或分页中显示列表?
- c - 我们必须如何比较两个整数?
- spring - Spring Boot 从 application.properties 读取一个键的不同值
- javascript - javascript中的模态加载
- html - 两个粘性行和一个粘性列