我有一个通过supervisord管理的应用程序(部署在docker容器中)
我的supervisord.conf
看起来像是:
[supervisord]
nodaemon=true
logfile=/var/log/supervisor/supervisord.log
loglevel=INFO
[program:anjay]
priority=1
#USE SOME_CLI for different run configurations
command=/some/binary %(ENV_SOME_CLI)s
stdout_logfile=/dev/fd/1
stderr_logfile=/dev/fd/2
stdout_logfile_maxbytes=0
stderr_logfile_maxbytes=0
autostart=true
autorestart=false
stopsignal=INT
user=root
我希望能够使用不同的参数重启/some/binary
(由SOME_CLI
env变量驱动)
第一次启动应用程序非常有效,可以扩展参数。 E.g:
export SOME_CLI=A
/some/binary A
然后我想要export
新的SOME_CLI=B
,我希望重启后能够:
export SOME_CLI=B
/some/binary B
不幸的是还有
/some/binary A
是否可以通过这种方式重新启动具有不同参数的已配置应用程序? 如果没有,如何实现这样的功能?
备注:我知道我的应用程序已部署在容器中,我可以使用不同的参数重新启动容器。它似乎不是正确的事情(重新启动整个容器只是为了改变一些参数)。
如果我错了,请纠正我
答案 0 :(得分:0)
直接在[program]部分的conf文件中添加环境变量,例如:
[program:anjay]
environment=ENV_SOME_CLI=your_value
通过告知supervisord使用supervisorctl update
对该文件进行更改来应用更改。