是否可以使用例如ConfigurableEnvironment和云代工实例索引以编程方式为云代工厂中部署的spring启动应用程序的每个实例设置不同的配置文件?
答案 0 :(得分:0)
我建议您考虑使用任务。
https://docs.cloudfoundry.org/devguide/using-tasks.html
这大致是如何运作的。
运行std::vector<int>
将您的应用程序部署到CF.如果您实际上没有要运行的应用程序,那就没问题。您只需要推送应用程序并启动它一次,以便它分阶段并创建一个Droplet。之后,您可以运行cf push
来关闭实例(注意:cf stop
将无效,因为应用需要至少暂存一次)。
运行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'
时使用列出的命令并根据需要进行修改。