如何将parameter passing给docker中的supervisord?

我在Docker中运行两个python服务。 这两项服务都需要一个共同的论点,我在“docker运行”

目前,我通过调用shell脚本中的服务来实现这一点。 但是,我认为正确的解决scheme是使用docker中的supervisor,并通过它运行这两个服务。

我想实现这样的事情:

[program:A] command=python -m A.py <argument> [program:B] command=python -m B.py <argument> 

dockerfile看起来像这样:

 COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf CMD ["/usr/bin/supervisord"] 

我怎么把这个论点传给主pipe?

你可以使用一个环境variables:从主pipe文档

在启动supervisord时环境中存在的环境variables可以在configuration文件中使用Pythonstringexpression式语法%(ENV_X)s

 [program:example] command=/usr/bin/example --loglevel=%(ENV_LOGLEVEL)s 

在上面的示例中,expression式%(ENV_LOGLEVEL)s将被扩展为环境variablesLOGLEVEL的值。

在你的情况下,你的通用参数可以通过一个docker run -d -e "COMMON_ARG=myarg"传递给容器的环境variables中设置。