2017-12-25 1 views
0

나는 nginx를 officialalpine-fat 도커 이미지 안에 넣고 있으며, openresty 프로세스는 nobody 사용자로 시작합니다.openresty 내의 set_by_lua & os.getenv : 알파인 도커 컨테이너

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

docker-compose.yml가 다음 블록이 포함되어 :

나는 다음 문자열의 nginx 변수를 설정해야합니다

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

그러나이 nginx를 작업자 프로세스가 그 값을받지 것 같다, 그리고 $var은 비어 .

export ENV_VAR=value/etc/profile 개 파일에 추가하려고했지만 사용하지 않았습니다. nginx 사용자와 함께 openresty를 실행하려고 시도했지만 변수 값 ENV_VAR도 표시되지 않습니다.

가능한 경우 어떻게 할 수 있습니까?

+0

nginx config에'env ENV_VAR;'을 추가하십시오. 기본적으로 nginx는 모든 환경 변수를 버리며 저장합니다. –

+0

u'r 내 생명의 은인, 친구, 고마워,이 대답을 추가하십시오. –

답변

1

env ENV_VAR;을 nginx config에 추가 해보십시오. 기본적으로 nginx는 모든 환경 변수를 버리며 저장합니다.

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

구문에서 : ENV 변수 [= 값];

기본값 :

env TZ;

상황 : 기본적으로

주는의 nginx는 TZ 변수를 제외하고 부모 프로세스로부터 상속 된 모든 환경 변수를 제거합니다. 이 지시어는 상속 된 변수의 일부를 보존하거나, 값을 변경하거나, 새로운 환경 변수를 생성 할 수 있습니다.

관련 문제