如何将命令行parameter passing给在docker中运行的python脚本

我有一个名为perf_alarm_checker.py的python文件,这个python文件需要两个命令行参数: python perf_alarm_checker.py -t something -d something ,Dockerfile看起来像这样:

 # Base image FROM some base image ADD perf_alarm_checker.py /perf-test/ CMD python perf_alarm_checker.py 

如何传递两个命令行参数, -t-ddocker run ? 我试图docker run -w /perf-test alarm-checker -t something -d something但没有奏效。

你不能像你打算的那样使用-t-d ,因为那些是docker run选项。

  • -t启动一个terminal。
  • -d启动docker容器作为守护进程。

要在Dockerfile中设置环境variables,请使用ENV命令。

 ENV <key>=<value> 

请参阅Dockerfile参考 。

另一个select是通过docker run传递环境variables:

 docker run ... -e "key=value" ... 

请参阅docker运行参考 。

这些环境variables可以从CMD访问。

 CMD python perf_alarm_checker.py -t $ENV1 -d $ENV2 

使用一个ENTRYPOINT而不是CMD,然后你可以在Docker运行中使用命令行选项,就像你的例子。

ENTRYPOINT ["python", "perf_alarm_checker.py"]