【问题标题】:How to pass an argument to supervisord in docker?如何在docker中将参数传递给supervisord?
【发布时间】:2016-08-09 07:31:59
【问题描述】:

我在 docker 中运行两个 python 服务。这两种服务都需要一个共同的参数,我在“docker run”期间提供了这个参数

目前,我通过从 shell 脚本调用这两个服务来实现这一点。但是,我认为正确的解决方案是在 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"]

如何将参数传递给主管?

【问题讨论】:

    标签: docker supervisord


    【解决方案1】:

    您可以使用环境变量:来自supervisor doc

    supervisord 启动时存在于环境中的环境变量可以使用 Python 字符串表达式语法%(ENV_X)s 在配置文件中使用:

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

    在上面的示例中,表达式 %(ENV_LOGLEVEL)s 将扩展为环境变量 LOGLEVEL 的值。

    在您的情况下,您的公共参数可以设置在一个环境变量中,并使用docker run -d -e "COMMON_ARG=myarg" 传递给容器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多