简体   繁体   中英

Is it possible to override uwsgi ini-file with environment variables

I'm trying to build a "base" docker image for running a python framework with uwsgi. The goal is to have others build their own docker images where they dump their application logic and any configuration overrides they need.

I thought it might be nice to be able to override any default settings from a uwsgi.ini file by supplying UWSGI_* environment variables passed to uwsgi at startup.

I've tried this approach, and setting a value via env var works if it's not in the ini-file at all (eg UWSGI_WORKERS=4 ). But if I put a workers=1 line in the ini-file, it seems to override the env var.

Is this expected behaviour? I'm having trouble finding anything about config resolution order in the docs. Do I have to resort to something like this? Using env vars seems so much cleaner.

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

First, make all environment variables in the .ini file refer to the environment variables like below:

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

Then set whatever default values you want for these environment variables inside the Dockerfile.

Now, anyone using your base image can overwrite any config by setting the specific env variable.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM