如何在 thorntail 2.4 中将配置文件设置为默认配置文件
How to set profiles as default in thorntail 2.4
问题:
我使用 Thorntail 2.4.0-Final 在 JavaEE 中创建了一个应用程序。
我有 2 个 yaml 文件,'project-default.yml' 和 'project-local.yml'。
我的 Postgres 信息在 default.yml 里面,我的 H2 信息在 local.yml 里面。
如果我使用命令行 'java -jar myapplication.jar' 启动我的应用程序,他将使用 default.yml。如果我将 -Slocal 添加到命令行,他会使用 local.yml,但我希望他默认使用 local.yml。
我知道我可以重命名 2 个 yaml 文件,这样默认的文件就是 H2,但这并不能解决我的问题,因为我想将我的应用程序部署到云中,而在云中他应该使用 Postgres 而不是 H2 和没有选项可以说 'cf push myapplication -S....'.
问题:
当我在本地启动我的应用程序时,我如何告诉我的应用程序他使用 'project-local.yml' 文件,而不添加“-Slocal”?
或
我如何通过添加命令来推送我的应用程序来说明他应该使用哪个 yaml 文件?
Thorntail 无法知道它在哪个环境中 运行。配置文件的真正目的是您 可以控制应用的配置。如果您知道如何可靠地 (!) 检测到 "local" 环境,我认为这将是一个很好的功能请求。
也就是说,Cloud Foundry 不允许您配置用于启动应用程序的命令似乎很奇怪。根据 http://cli.cloudfoundry.org/en-US/cf/push.html,您可以使用 -c
参数来配置命令。
虽然这看起来很低级,但这是另一种选择。除了 -s
和 -S
参数外,您还可以使用 thorntail.project.stage.file
和 thorntail.project.stage
系统属性。这里可以设置thorntail.project.stage
,大致相当于-S
。根据 https://github.com/cloudfoundry/java-buildpack/blob/master/docs/framework-java_opts.md,您可以通过创建 JAVA_OPTS
环境变量来设置任意系统属性。
因此,如果您将 project-defaults.yml
切换到本地设置(使用 H2),并创建了例如project-cloud.yml
使用生产设置(使用 PostgreSQL),在 Cloud Foundry 中创建一个环境变量 JAVA_OPTS="-Dthorntail.project.stage=cloud"
就足够了。
问题:
我使用 Thorntail 2.4.0-Final 在 JavaEE 中创建了一个应用程序。 我有 2 个 yaml 文件,'project-default.yml' 和 'project-local.yml'。 我的 Postgres 信息在 default.yml 里面,我的 H2 信息在 local.yml 里面。 如果我使用命令行 'java -jar myapplication.jar' 启动我的应用程序,他将使用 default.yml。如果我将 -Slocal 添加到命令行,他会使用 local.yml,但我希望他默认使用 local.yml。 我知道我可以重命名 2 个 yaml 文件,这样默认的文件就是 H2,但这并不能解决我的问题,因为我想将我的应用程序部署到云中,而在云中他应该使用 Postgres 而不是 H2 和没有选项可以说 'cf push myapplication -S....'.
问题:
当我在本地启动我的应用程序时,我如何告诉我的应用程序他使用 'project-local.yml' 文件,而不添加“-Slocal”?
或
我如何通过添加命令来推送我的应用程序来说明他应该使用哪个 yaml 文件?
Thorntail 无法知道它在哪个环境中 运行。配置文件的真正目的是您 可以控制应用的配置。如果您知道如何可靠地 (!) 检测到 "local" 环境,我认为这将是一个很好的功能请求。
也就是说,Cloud Foundry 不允许您配置用于启动应用程序的命令似乎很奇怪。根据 http://cli.cloudfoundry.org/en-US/cf/push.html,您可以使用 -c
参数来配置命令。
虽然这看起来很低级,但这是另一种选择。除了 -s
和 -S
参数外,您还可以使用 thorntail.project.stage.file
和 thorntail.project.stage
系统属性。这里可以设置thorntail.project.stage
,大致相当于-S
。根据 https://github.com/cloudfoundry/java-buildpack/blob/master/docs/framework-java_opts.md,您可以通过创建 JAVA_OPTS
环境变量来设置任意系统属性。
因此,如果您将 project-defaults.yml
切换到本地设置(使用 H2),并创建了例如project-cloud.yml
使用生产设置(使用 PostgreSQL),在 Cloud Foundry 中创建一个环境变量 JAVA_OPTS="-Dthorntail.project.stage=cloud"
就足够了。