如何将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中设置。