【问题标题】:Is it possible to override uwsgi ini-file with environment variables是否可以使用环境变量覆盖 uwsgi ini 文件
【发布时间】:2018-11-13 14:30:15
【问题描述】:

我正在尝试构建一个“基础”docker 映像,用于使用 uwsgi 运行 python 框架。目标是让其他人构建自己的 docker 镜像,在其中转储他们的应用程序逻辑和他们需要的任何配置覆盖。

我认为通过提供在启动时传递给 uwsgi 的 UWSGI_* 环境变量来覆盖 uwsgi.ini 文件中的任何默认设置可能会很好。

我已经尝试过这种方法,如果它根本不在 ini 文件中(例如 UWSGI_WORKERS=4),则可以通过 env var 设置值。但是如果我在 ini 文件中添加 workers=1 行,它似乎会覆盖 env var。

这是预期的行为吗?我在文档中找不到有关配置解析顺序的任何内容。 我必须诉诸这样的事情吗?使用环境变量似乎更干净。

if-exists = ./override.ini
include = %(_)
endif =

【问题讨论】:

标签: python uwsgi


【解决方案1】:

首先,使.ini文件中的所有环境变量引用如下环境变量:

[uwsgi]
http = $(HTTP_PORT)
processes = $(UWSGI_WORKERS)
threads = $(UWSGI_THREADS)
...

然后在 Dockerfile 中为这些环境变量设置您想要的任何默认值。

现在,任何使用您的基础映像的人都可以通过设置特定的环境变量来覆盖任何配置。

【讨论】:

  • 感谢您的回答!尽管您实际上还没有回答我的问题,但您已经提出了另一种解决方案。为了获得赏金,我希望完全满足要求(请参阅上面的赏金说明)。不过,我很感激你花时间和精力来帮助我。
猜你喜欢
  • 2014-02-15
  • 2022-11-21
  • 2016-10-19
  • 2018-06-22
  • 2016-12-22
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多