Dockerfile에서 ENV
로 등록한 environment variable이 docker
명령어로 접근한 session에서는 잘 보이지만, container 내부에서 ssh-server
를 돌리고 이를 ssh로 접근하면 해당 environment가 사라지는 것을 확인할 수 있다.
예를 들어,
FROM ubuntu
ENV HI 10
root@7ff2f35a5fed:/# echo $HI
10
root@7ff2f35a5fed:~# echo $HI
사실 이는 당연한게, run
이든, exec
이든 docker
로 접근한다면 Dockerfile의 session을 이어받는 것이다.
따라서 environment variable 또한 상속받는다.
그런데 ssh로 새로운 session을 만든다면 .bashrc
등의 shell 설정 파일이 로드되며, 여기에 등록되지 않은 변수들은 보이지 않을 뿐이다.
ssh로 접근할 때에도 이 변수들을 그대로 받으려는 방법들을 찾아봤지만 뚜렷한 답을 찾지는 못했다.
따라서 이 변수들을 활용하고 싶다면 최대한 docker를 경유하여 접근하는 것이 안전하다.