对于一个组织中的每个空间,使用Pivotal (PCF),有办法为每个空间设置SPRING_PROFILES_ACTIVE吗?
谢谢你,布莱恩
发布于 2019-01-06 20:00:58
在Cloud上设置Spring概要文件的主要方法是通过环境变量。
Cloud没有提供一种方法来设置每个组织或空间的环境变量组。您只能设置一个暂存和一个运行环境变量组,它适用于所有暂存或所有正在运行的应用程序。此外,还提供了在应用程序上设置环境变量的标准工具。
我想你也许能让这件事成功,但这需要付出一点努力。我的想法是。
.profile.d/的export SPRING_PROFILES_ACTIVE=<some-profile>脚本(只是一个普通的Bash脚本)。
任何构建包都可以创建.profile.d/脚本,这些脚本主要用于配置环境变量。这些脚本是在任何应用程序启动之前由环境自动获取的。因此,如果buildpack在这里设置了SPRING_PROFILES_ACTIVE,它将对您的应用程序可用并生效。
https://docs.cloudfoundry.org/buildpacks/custom.html#contract
您只需要创建bin/supply和bin/detect脚本,如下面的链接所定义。bin/supply是您将逻辑用于创建.profile.d/脚本的地方,而bin/detect可能与exit 0一样简单,后者只会告诉它始终运行。
https://docs.cloudfoundry.org/buildpacks/understand-buildpacks.html#buildpack-scriptsVCAP_APPLICATION环境。
例:echo $VCAP_APPLICATION | jq .space_name.
然后,buildpack可以应用逻辑来设置给定空间名称的正确配置文件。我不认为该应用程序在暂存/运行时可以使用组织名称,至少不能通过环境变量使用,因此在此基础上应用逻辑将更加困难。cf push -b https://github.com/your-profile/your-custom-buildpack -b java_buildpack your-cool-app.
https://docs.cloudfoundry.org/buildpacks/use-multiple-buildpacks.html希望这能帮上忙!
https://stackoverflow.com/questions/54015467
复制相似问题