gpt4 book ai didi

Python 文件写入在 docker 中不起作用

转载 作者:行者123 更新时间:2023-12-02 18:26:18 31 4
gpt4 key购买 nike

我正在尝试对一个 python 脚本进行 docker 化,其中包含文本文件和 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 脚本时,我能够生成文件。我可以知道为什么它没有在工作目录中生成吗?

更新

    def write_log(self, filename, message, type='info'):
with open(filename, 'a') as log:
log.write('\n' + message)

def write_csv(self, filepath, data):
with open(filepath, 'a', newline='') as file:
writer = csv.writer(file)
writer.writerow(data)

常量文件包含路径

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

最佳答案

容器本质上是短暂的。如果要保留容器内生成的文件,则需要将主机文件系统挂载到容器的文件系统。挂载卷的方式有很多种,但常用的方式是绑定(bind)挂载

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

即使容器被杀死,保存到 /project 的任何内容都将在 /path/to/host 中可见

关于Python 文件写入在 docker 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62395031/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com