我有一个python代码,我在其中打开一个文件然后提取特定数据。以下是该代码:
def get_mode(first, last):
with open('/srv/config/mode.conf','r') as f:
for line in f:
if line.startswith(first):
try:
start = line.index(first) + len(first)
end = line.index(last, start)
return line[start:end]
except ValueError:
return "Default Mode"
当我执行python代码时,这很好用。但我想将它作为一个docker运行,所以我使用下面的命令将它转换为docker image:
sudo docker build -t mydocker .
上面的命令成功将python代码转换为docker镜像。然后我使用
运行图像sudo docker run -it mydocker
但它给出了错误:
Traceback (most recent call last):
File "./my_script.py", line 68, in <module>
main()
File "./my_script.py", line 52, in main
mode = get_mode("user "," :")
File "./my_script.py", line 15, in get_publish_string
with open('/srv/config/mode.conf','r') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/srv/config/mode.conf'
如果python代码运行正常,那么为什么这可能是为什么docker image会出错?
DOCKERFILE的内容:
FROM python:3
ADD my_script.py /
ADD mode.conf /srv/config
RUN pip3 install psutil
CMD [ "python3", "./my_script.py" ]
答案 0 :(得分:1)
您还需要将配置文件添加到图像中。
RUN mkdir -p /srv/config
ADD mode.conf /srv/config
或类似的东西。