我有一个运行systemd的Docker容器。我想将环境变量传递给它下面的应用程序。
当我从Docker(/sbin/init
作为命令行)启动systemd时,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
在运行命令时看到。
换句话说,systemd可以将传递给它的变量传递给它启动的子级吗?
对于Dockerfile,请参阅github存储库。