云findy中每个Spring启动应用程序实例的不同配置文件

时间:2017-11-15 01:30:28

标签: spring-boot cloudfoundry pivotal-cloud-foundry

是否可以使用例如ConfigurableEnvironment和云代工实例索引以编程方式为云代工厂中部署的spring启动应用程序的每个实例设置不同的配置文件?

1 个答案:

答案 0 :(得分:0)

我建议您考虑使用任务。

https://docs.cloudfoundry.org/devguide/using-tasks.html

这大致是如何运作的。

  1. 运行std::vector<int>将您的应用程序部署到CF.如果您实际上没有要运行的应用程序,那就没问题。您只需要推送应用程序并启动它一次,以便它分阶段并创建一个Droplet。之后,您可以运行cf push来关闭实例(注意:cf stop将无效,因为应用需要至少暂存一次)。

  2. 运行cf push --no-start。这是您启动批处理作业的地方。 cf run-task <app> <command>参数将是运行批处理作业的完整命令。在此,您可以包含一个参数来指示应该使用的配置文件。例如:<command>

    https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

    您需要使用--spring.profiles.active=dev,hsqldb的完整或相对路径,因为Java buildpack不会将其放在路径上。如果要运行打印JVM版本的任务,则使用此命令java

    例如:'.java-buildpack/open_jdk_jre/bin/java -version'

    请参阅此SO post,但是在命令中硬编码Java可执行文件的路径存在缺陷。我的建议是在运行cf run-task <app> '.java-buildpack/open_jdk_jre/bin/java -version'时使用列出的命令并根据需要进行修改。