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代码转换成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" ]
您还需要将configuration文件添加到您的图像。
RUN mkdir -p /srv/config ADD mode.conf /srv/config
或类似的东西。