如何将命令行参数传递给在docker中运行的python脚本

时间:2016-03-03 08:16:18

标签: docker

我有一个名为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-d传递给docker run?我试过docker run -w /perf-test alarm-checker -t something -d something但是没有用。

2 个答案:

答案 0 :(得分:22)

使用ENTRYPOINT而不是CMD,然后您可以在docker run中使用命令行选项,如示例所示。

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

答案 1 :(得分:10)

您无法使用-t-d,因为这些是docker run的选项。

  • -t启动终端。
  • -d启动docker容器作为守护程序。

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

ENV <key>=<value>

请参阅Dockerfile reference

另一个选择是通过docker run传递环境变量:

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

请参阅docker run reference

可以从CMD访问这些环境变量。

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