Ich habe einen Docker-Container, auf dem systemd ausgeführt wird . Ich möchte Umgebungsvariablen an Anwendungen darunter übergeben.
Wenn ich systemd in Docker ( /sbin/init
als Befehlszeile) starte, macht Docker Variablen für systemd verfügbar , jedoch nicht für untergeordnete Dienste . Wenn ich systemd.setenv=...
zur cmdline hinzufüge , werden die Variablen übergeben. Ich suche eine sauberere Lösung.
Wie mache ich Umgebungsvariablen verfügbar, die an /sbin/init
von ihr gestartete Anwendungen übergeben werden?
% 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
Ich erwarte zu sehen, VAR1=1
während mein Befehl ausgeführt wird.
Mit anderen Worten, kann systemd Variablen an Kinder übergeben, die es startet?
Informationen zu Dockerfile finden Sie im Github-Repository .