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

msn*_*msn 14 docker

我有一个python文件perf_alarm_checker.py,这个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
Run Code Online (Sandbox Code Playgroud)

如何通过这两个命令行参数,-t-ddocker run?我试过docker run -w /perf-test alarm-checker -t something -d something但不行.

小智 29

使用ENTRYPOINT而不是CMD,然后您可以像在示例中一样使用docker run中的命令行选项.

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


mic*_*ahr 11

你不能使用-t-d你想要的那样,因为它们是你的选择docker run.

  • -t 开始一个终端.
  • -d 将docker容器作为守护进程启动.

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

ENV <key>=<value>
Run Code Online (Sandbox Code Playgroud)

请参阅Dockerfile参考.

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

docker run ... -e "key=value" ...
Run Code Online (Sandbox Code Playgroud)

请参阅docker run参考.

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

CMD python perf_alarm_checker.py -t $ENV1 -d $ENV2
Run Code Online (Sandbox Code Playgroud)