custon docker python图像中的FileNotFoundError

时间:2017-12-20 11:37:04

标签: python docker

我有一个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" ]

1 个答案:

答案 0 :(得分:1)

您还需要将配置文件添加到图像中。

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

或类似的东西。