openresty中的set_by_lua&os.getenv:alpine docker container

问题描述 投票:0回答:1

我在openresty official docker image中运行alpine-fat nginx,并且openresty进程从nobody用户开始。

我需要使用下一个字符串设置nginx变量:

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_VAR变量的值。

如果可以的话,我怎样才能使那件事成功?

docker nginx lua docker-compose openresty
1个回答
1
投票

尝试将env ENV_VAR;添加到您的nginx配置中。默认情况下,nginx将丢弃所有环境变量,这将允许保存它。

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

语法:env variable [= value];

默认:

env TZ;

背景:主要

默认情况下,nginx会删除从其父进程继承的所有环境变量,但TZ变量除外。该指令允许保留一些继承的变量,更改其值或创建新的环境变量。

© www.soinside.com 2019 - 2024. All rights reserved.