我正在尝试构建一个“基本” docker映像,以使用uwsgi运行python框架。目标是让其他人构建自己的docker映像,在其中转储其应用程序逻辑和所需的任何配置替代。
我认为能够通过在启动时提供传递给uwsgi的UWSGI_*
环境变量来覆盖uwsgi.ini文件中的任何默认设置会很好。
我已经尝试过这种方法,并且如果根本不在ini文件中(例如UWSGI_WORKERS=4
),则可以通过env var设置值。但是,如果我在ini文件中放置了workers=1
行,它似乎会覆盖env变量。
这是预期的行为吗?我在文档中找不到有关配置解析顺序的任何信息。 我必须诉诸于这样的事情吗?使用env var似乎更干净。
if-exists = ./override.ini
include = %(_)
endif =
答案 0 :(得分:2)
首先,使.ini文件中的所有环境变量都引用如下所示的环境变量:
[uwsgi]
http = $(HTTP_PORT)
processes = $(UWSGI_WORKERS)
threads = $(UWSGI_THREADS)
...
然后为Dockerfile中的这些环境变量设置所需的任何默认值。
现在,使用基础映像的任何人都可以通过设置特定的env变量来覆盖任何配置。