Python文件写入在docker内部不起作用

Python文件写入在docker内部不起作用,python,docker,Python,Docker,我正在尝试dockerize一个python脚本,其中包含文本文件和CSV文件的文件写入。但它不起作用,文件没有生成 作为参考,我的代码是 FROM python:3 ADD ./HMS.py / ADD ./constants.py / ADD ./Docker.py / ADD ./SNT.py / ADD ./Utility.py / RUN pip install --trusted-host pypi.org --trusted-host files.pythonhosted

我正在尝试dockerize一个python脚本,其中包含文本文件和CSV文件的文件写入。但它不起作用,文件没有生成

作为参考,我的代码是

FROM python:3



ADD ./HMS.py /
ADD ./constants.py /
ADD ./Docker.py /
ADD ./SNT.py /
ADD ./Utility.py /


RUN pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org docker
RUN pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org grepfunc
RUN pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org requests


CMD [ "python", "./HMS.py" ]
但是,当我在外部运行python脚本时,我能够生成文件。我可以知道为什么它没有在工作目录中生成吗

更新 常量文件包含路径

LOG_FILE='./snt_alarm_log.txt'
COMPONENT_NAME='SNT Alarm'
DB_FILE='./snt.csv'

容器本质上是短暂的。如果要保留容器内生成的文件,则需要将主机文件系统装载到容器的文件系统。装载卷的方法有很多,但常见的方法是绑定装载

docker run -v /path/to/host:/project sntalarmdocker_snt

保存到
/project
的任何内容都将在
/path/to/host
中可见,即使在容器被终止后也不例外

您使用什么标志启动docker容器?你能粘贴整个docker run命令吗?你是如何运行容器的?输出是什么?如果
HMS.py
很简单,让我们看看它。否则,请尝试使用只编写文件的简单脚本重现问题。另外,我认为您有一些不必要的
添加
命令。@prithajnath docker运行sntalarmdocker\u sntWe我们会将一些消息和状态写入txt文件,也会在CSV文件中HMS.py到控制台的输出只是向上或向下。但是我们正在将一些消息和状态写入文本文件和CSV文件如何找到容器的路径?它通常是您的
WORKDIR
,因此在您的情况下,它将是
/project
。我更新了原始帖子,但仍然无法获取需要由python生成的文件。实际上,sntalarmdocker\u snt是一个没有包含的docker映像,即使我也无法查看日志文件
docker run -v /path/to/host:/project sntalarmdocker_snt