部署清单中是否有约定或位置来指定计算机的环境变量?还是我必须编写一个 shell 脚本来执行此操作?如果我必须这样做,我是否必须将它们设置在作业前挂钩中?
创建发布时,约定是仅设置和导出特定作业/进程所需的环境变量,并在作业的控制脚本中执行此操作。
例如,bosh 发行版在启动控制器进程 (ref) 的 control/shell 脚本中导出几个环境变量,如 GEM_HOME
和 http_proxy
。GEM_HOME
静态指向其自己的包目录,并且根据部署清单中操作员配置的属性有条件地设置http_proxy
。
pre-start
钩子在其自己的进程中执行,因此您的pre-start
脚本尝试导出的任何环境变量都不会传播到稍后由 bosh 或 monit 执行的其他 shell 脚本中。