小编Mot*_*tys的帖子

在 systemd Docker 容器中继承环境变量

我有一个运行 systemdDocker 容器。我想将环境变量传递给它下面的应用程序。

当我从 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
Run Code Online (Sandbox Code Playgroud)

我希望VAR1=1在运行我的命令时看到。

换句话说,systemd 可以将传递给它的变量传递给它启动的孩子吗?

对于 Dockerfile,请参阅github 存储库

environment-variables systemd docker

10
推荐指数
1
解决办法
5518
查看次数

标签 统计

docker ×1

environment-variables ×1

systemd ×1