[英]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.