custon docker python image中的FileNotFoundError

我有一个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的图像:

 sudo docker build -t mydocker . 

上面的命令成功地将python代码转换成d​​ocker镜像。 然后我运行图像使用

 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" ] 

您还需要将configuration文件添加到您的图像。

 RUN mkdir -p /srv/config ADD mode.conf /srv/config 

或类似的东西。