首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Supervisord覆盖环境变量

Supervisord覆盖环境变量
EN

Stack Overflow用户
提问于 2018-01-25 00:02:41
回答 1查看 788关注 0票数 0

我有一个应用程序(部署在docker容器中)通过supervisord进行管理

我的supervisord.conf看起来像这样:

代码语言:javascript
复制
[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_CLI环境变量驱动)重新启动/some/binary

第一次启动应用程序可以完美地工作,参数被扩展。例如:

代码语言:javascript
复制
export SOME_CLI=A
/some/binary A

然后我想要export新的SOME_CLI=B,我希望在重启后:

代码语言:javascript
复制
export SOME_CLI=B
/some/binary B

不幸的是,仍然有

代码语言:javascript
复制
/some/binary A

是否可以通过这种方式使用不同的参数重新启动已配置的应用程序?

如果没有,如何实现这些功能?

备注:我知道我的应用程序部署在容器中,我可以使用不同的参数重新启动容器。这似乎不是正确的做法(重启整个容器只是为了改变一些参数)。

如果我错了,请纠正我

EN

回答 1

Stack Overflow用户

发布于 2018-01-25 21:14:11

将环境变量直接添加到conf文件的program部分,例如:

代码语言:javascript
复制
[program:anjay]
environment=ENV_SOME_CLI=your_value

通过使用supervisorctl update通知supervisord该文件中有更改来应用更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48426721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档