Ho un container Docker con systemd . Voglio passare le variabili di ambiente alle applicazioni in esso contenute.
Quando avvio systemd da Docker ( /sbin/init
come riga di comando), Docker espone le variabili a systemd, ma non espone ai servizi figlio . Se aggiungo systemd.setenv=...
al cmdline, le variabili vengono passate. Sto cercando una soluzione più pulita.
Come esporre le variabili di ambiente passate /sbin/init
alle applicazioni avviate da esso?
% 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
Mi aspetto di vedere VAR1=1
mentre eseguo il mio comando.
In altre parole, systemd può passare variabili passate ad esso ai bambini che inizia?
Per Dockerfile, consultare il repository github .