Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用命令将参数传递给带有python入口点脚本的docker容器?_Python_Docker - Fatal编程技术网

如何使用命令将参数传递给带有python入口点脚本的docker容器?

如何使用命令将参数传递给带有python入口点脚本的docker容器?,python,docker,Python,Docker,因此,我有一个docker映像,其中有一个python脚本作为入口点,我希望在容器运行时将参数传递给python脚本。我尝试使用sys.argv和sys.stdin获取参数,但两者都不起作用。我正在尝试使用以下命令运行容器: docker run image argument 这取决于入口点是如何设置的。如果它是以“exec form”设置的,那么您只需在docker run命令后传递参数,如下所示: docker run image -a -b -c 不幸的是,如果它是以“shell形式”

因此,我有一个docker映像,其中有一个python脚本作为入口点,我希望在容器运行时将参数传递给python脚本。我尝试使用sys.argv和sys.stdin获取参数,但两者都不起作用。我正在尝试使用以下命令运行容器:

docker run image argument

这取决于入口点是如何设置的。如果它是以“exec form”设置的,那么您只需在
docker run
命令后传递参数,如下所示:

docker run image -a -b -c
不幸的是,如果它是以“shell形式”设置的,那么您必须重写入口点

$ docker run --entrypoint echo image hi
hi
您可以使用
docker inspect
检查表单。如果入口点以
/bin/sh-c
开头,则它是shell形式

参考资料:

看起来(可能是因为docker版本更新),这并不取决于它是以shell形式还是以exec形式指定的。根据
命令行参数,docker run将附加在exec表单ENTRYPOINT中的所有元素之后,并将覆盖使用CMD指定的所有元素。
,因此,如果您想稍后添加某些内容,请使用ENTRYPOINT,如果您想稍后覆盖它,请使用CMD。快速参考:shell表单是
ENTRYPOINT foo--bar
,exec表单是
ENTRYPOINT[“foo”,“--bar”]