簡體   English   中英

在Docker中的入口點運行命令不會輸出文件錯誤

[英]Run command on entrypoint in docker outputs no file errors

在簡單的dockerfile上:

FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /code/

如果我運行:

docker build -t my_image .
docker run -v ~/Downloads/data/:/home -it -d my_image # mount data folder inside home
docker exec -it container_id  sh -c  "python script.py -i /home/db.sqlite"

一切正常。 但是我想在運行時運行script.py ,因此不需要exec命令。

所以我添加到dockerfile中:

ENTRYPOINT ["python script.py -i /home/db.sqlite"]

但是當我現在運行容器時,它失敗,並在python script.py出現文件或文件夾未找到錯誤

我認為問題在於ENTRYPOINT語法如何工作。 您使用的是exec-form,但找不到二進制文件(它使用整個命令行作為二進制文件的路徑)。

https://docs.docker.com/engine/reference/builder/#entrypoint

ENTRYPOINT有兩種形式:
ENTRYPOINT [“ executable”,“ param1”,“ param2”](執行表格,首選)
ENTRYPOINT命令param1 param2(shell形式)

因此,請嘗試:

ENTRYPOINT ["/path/to/python", "script.py", "-i", "/home/db.sqlite"]

要么

ENTRYPOINT python script.py -i /home/db.sqlite

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM