我正在尝试构建一个“基础”docker镜像,用于运行带有uwsgi的python框架。目标是让其他人构建他们自己的docker镜像,在那里他们转储他们的应用程序逻辑和任何他们需要的配置覆盖。
我认为能够通过提供在启动时传递给uwsgi的UWSGI_*
环境变量来覆盖uwsgi.ini文件中的任何默认设置可能会更好。
我尝试过这种方法,如果它根本不在ini文件中(例如UWSGI_WORKERS=4
),那么通过env var设置一个值就可以了。但是,如果我在ini文件中放入一个workers=1
行,它似乎会覆盖env变量。
这是预期的行为吗?我在文档中找不到任何关于配置解析顺序的东西。我必须求助于这样的东西吗?使用env vars似乎要干净得多。
if-exists = ./override.ini
include = %(_)
endif =
发布于 2018-11-19 20:47:46
首先,使.ini文件中的所有环境变量引用环境变量,如下所示:
[uwsgi]
http = $(HTTP_PORT)
processes = $(UWSGI_WORKERS)
threads = $(UWSGI_THREADS)
...
然后在Dockerfile中为这些环境变量设置您想要的任何默认值。
现在,使用您的基础镜像的任何人都可以通过设置特定的环境变量来覆盖任何配置。
https://stackoverflow.com/questions/53283263
复制相似问题