我正在使用monit来启动(和监视)容器内的多个进程。不幸的是,monit以非常简化的环境运行进程,因此来自docker run --env ...
的任何东西都不会被monit启动的进程看到。在其他环境中,我只需确保在此过程中提供/etc/environment
或~/.bash_profile
,以便进行环境设置。
但是docker run --env
没有任何等效的AFAIK。除了必须在monit周围有一个包装器,创建monit配置文件或创建/etc/environment
有没有办法访问来自docker的这些环境变量?
答案 0 :(得分:0)
只是在这里思考。在运行monit之前,您可以收集它有权访问的环境变量。例如:
env | sed 's/^/export /' > /tmp/monit.save.sh
然后,当你开始'在monit配置中,你可以在bash shell中获取该文件,就像你谈到采购/ etc / environment一样。因此,在启动monit程序之前,请获取/tmp/monit.save.sh,然后运行您的程序。这将使monit“start”程序访问传递给docker容器的环境变量。
然而,我可能刚刚描述了你试图避免的包装,对不起,如果是这样的话。