openresty:高山docker集装箱内的set_by_lua&os.getenv

我在正式的 alpine-fatdocker图像中运行openresty nginx,openresty过程从nobody用户开始。

我需要设置下一个string的nginxvariables:

 set_by_lua $var 'return os.getenv("ENV_VAR")'; 

docker-compose.yml包含下一个块:

 build: context: . dockerfile: ./Dockerfile.nginx environment: - ENV_VAR=value 

但是,nginx工作进程似乎没有得到它的价值, $var仍然是空的。

我试图添加export ENV_VAR=value/etc/profile文件,但没有用。 我试图用nginx用户运行openresty,但是它也看不到ENV_VARvariables的值。

如果可以的话,我怎样才能使这件事情起作用?

尝试添加env ENV_VAR; 到你的nginxconfiguration。 默认情况下,nginx将放弃所有的环境variables,这将允许保存它。

https://nginx.org/en/docs/ngx_core_module.html#env

语法:env variable [= value];

默认:

env TZ;

上下文:主

默认情况下,除了TZvariables,nginx会删除从父进程inheritance的所有环境variables。 该指令允许保留一些inheritance的variables,更改它们的值或创build新的环境variables。