如何访问由容器内的监视器进程运行的环境variables

我正在使用monit来启动(和监视)容器内的多个进程。 不幸的是,monit以非常docker run --env ...环境运行这些进程,所以任何来自docker run --env ...都不会被docker run --env ...启动的进程看到。 在其他环境中,我只需确保在进程中input/etc/environment~/.bash_profile ,以便进行环境设置。

docker run --env没有任何相当的AFAIK。 除了必须有一个包装周围监视创build监控configuration文件或创build/etc/environment有没有办法来访问这些来自docker的环境variables?

只是想在这里超出。 就在你运行monit之前,你可以收集它有权访问的环境variables。 例如:

 env | sed 's/^/export /' > /tmp/monit.save.sh 

那么,稍后,在monitconfiguration中“启动”时,可以将该文件以bash shell的forms发送,就像您谈论采购/ etc / environment一样。 所以,就在你启动监控程序之前,请input/tmp/monit.save.sh,然后运行你的程序。 这将使monit'start'ed程序访问传递给docker容器的环境variables。

不过,我可能刚刚描述了你试图避免的包装,如果是这样的话,对不起。