如何在容器中加载Docker环境变量

问题描述 投票:-1回答:1

我正在使用systemd构建基于ubuntu图像的图像。我需要开始TigerVNC作为一项服务,取决于我在自己的环境中定义的一些环境变量Dockerfile,就像密码一样。

FROM ubuntu-systemd

ENV VNC_PW="some-password"

ENTRYPOINT ["/lib/systemd/systemd"]

此服务的单位文件的行是:

ExecStart=/usr/sbin/runuser -l root -c "/some/script.sh" 

由于systemd具有自己的环境,因此我无法访问环境变量在我的Dockerfile中定义。我期望以root身份运行脚本登录外壳程序(“ -l”标志)可以让我访问这些变量,但事实并非如此。我知道我需要的变量在/ proc / 1 / environ中,但是我不知道如何加载它们,因为示例在。profile文件中为root添加一些内容。

谢谢。

docker environment-variables systemd
1个回答
0
投票

有点棘手,但是我可以通过包含以下行来将环境变量加载到ExecStart属性的/some/script.sh中:

export `xargs --null --max-args=1 echo < /proc/1/environ`
© www.soinside.com 2019 - 2024. All rights reserved.