Как загрузить переменные среды Docker в контейнер - PullRequest
0 голосов
/ 29 сентября 2019

Я создаю образ на основе образа Ubuntu с помощью systemd.Мне нужно запустить 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 / environment , но я не знаю, как их загрузить, например, добавить что-то в файл .profile для пользователя root.

Спасибо.

1 Ответ

0 голосов
/ 29 сентября 2019

Немного сложно, но я могу загрузить переменные окружения в /some/script.sh в свойстве ExecStart, добавив следующую строку:

export `xargs --null --max-args=1 echo < /proc/1/environ`
...