docker run
명령에 환경 변수를 전달했지만 결과 컨테이너가 전달 된 값 대신 기본값을 사용하는 문제가 있습니다. 내가 구축하고 실행할 때 발생하는docker run 명령으로 보낸 환경 변수를 수신하는 방법은 어떻게 확인합니까?
FROM alpine
ENV MY_ENV="default value"
ENTRYPOINT echo "MY_ENV: " $MY_ENV
은 다음과 같습니다 : 여기
내 Dockerfile의$ docker build -t temp .
Sending build context to Docker daemon 54.78kB
Step 1/3 : FROM alpine
---> 37eec16f1872
Step 2/3 : ENV MY_ENV "default value"
---> Using cache
---> 8ba6d797b765
Step 3/3 : ENTRYPOINT echo "MY_ENV: " $MY_ENV
---> Using cache
---> 6fb9530b10b2
Successfully built 6fb9530b10b2
Successfully tagged temp:latest
$ docker run temp -e MY_ENV=test
MY_ENV: default value
을 당신이 볼 수 있듯이, 출력은 "기본값"하지만 난 기대하지 말아야 "테스트"를 볼 수 있습니까?
컨테이너에 대해 docker inspect
을 실행하면 입력을 받았음을 나타냅니다. 여기
docker inspect
에서 구성 아래에 봉투와 Cmd를 값은 다음과 같습니다
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"MY_ENV=default value"
],
"Cmd": [
"-e",
"MY_ENV=test"
]
나는 그것이 간단 확신합니다. 내가 뭘 놓치고 있니?
비슷한 질문이 답변에서 원하는 결과를보다 인자로 치료 될 나타납니다 https://stackoverflow.com/ 질문/40334751/dockerfile-overriding-env-variable –