Mam uruchomiony systemd kontener Docker . Chcę przekazać zmienne środowiskowe do aplikacji pod nim.
Kiedy uruchamiam systemd z Dockera ( /sbin/init
jako linia poleceń), Docker udostępnia zmienne systemd, ale nie udostępnia usług potomnych . Jeśli dodam systemd.setenv=...
do cmdline, zmienne są przekazywane. Szukam czystszego rozwiązania.
Jak odsłonić zmienne środowiskowe przekazywane do /sbin/init
uruchomionych przez niego aplikacji?
% 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
Spodziewam się zobaczyć VAR1=1
podczas wykonywania polecenia.
Innymi słowy, czy systemd może przekazywać zmienne przekazywane do dzieci, które uruchamia?
Aby uzyskać plik Dockerfile, zobacz repozytorium github .