簡體   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