나는이 도커 용기는 systemd 실행 . 환경 변수를 그 아래의 응용 프로그램에 전달하고 싶습니다.
Docker 내에서 systemd를 시작하면 ( /sbin/init
명령 행으로) Docker는 변수를 systemd에 노출 하지만 자식 서비스에는 노출하지 않습니다 . systemd.setenv=...
cmdline에 추가 하면 변수가 전달됩니다. 더 깨끗한 솔루션을 찾고 있습니다.
/sbin/init
시작된 애플리케이션에 전달 된 환경 변수를 어떻게 노출 합니까?
% docker run -v /sys/fs/cgroup:/sys/fs/cgroup:ro --privileged -ti \
-e VAR1=1 motiejus/systemd_fedora20 \
init systemd.setenv=VAR2=2
...
Welcome to Fedora 20 (Heisenbug)!
...
[ OK ] Reached target Multi-User System.
[root@740690365eb0 ~]# env | grep VAR
VAR2=2
VAR1=1
내 명령을 실행하는 동안 볼 것으로 예상됩니다 .
다시 말해, 체계화 된 변수는 전달 된 자식에게 전달 된 변수를 전달할 수 있습니까?
Dockerfile은 github repository를 참조하십시오 .