繁体   English   中英

自定义 docker python 图像中的 FileNotFoundError

[英]FileNotFoundError in custon docker python image

我有一个 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 图像会出错。

DOCKERFILE的内容:

FROM python:3

ADD my_script.py /

ADD mode.conf /srv/config

RUN pip3 install psutil

CMD [ "python3", "./my_script.py" ]

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

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

或类似的东西。

如果您通过下载带有 curl 的二进制文件来安装 docker-compose,请尝试将其删除

rm /usr/local/bin/docker-compose #replace the path with yours if it doesn't match

然后用apt安装docker-compose

sudo apt install docker-compose

重启

sudo reboot

并尝试启动

docker-compose -v

验证一切正常

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM