JHipster registry 和 cloud foundry (Pivotal)

JHipster registry and cloud foundry (Pivotal)

我正在尝试将 jhipster registry 部署到 cloud foundry,但是它的配置文件被 spring 云配置 'cloud' 配置文件覆盖。我无法在其正常端口 8761 上获得服务 运行,它始终默认为端口 8080。有谁知道如何覆盖这些属性并成功设置它?

Java buildpack 不应覆盖您的 Spring 配置文件,但它会附加到它们。您可能需要仔细检查您是如何设置配置文件的,以确保它们被正确应用。

The Spring Auto-reconfiguration Framework adds the cloud profile to any existing Spring profiles such as those defined in the SPRING_PROFILES_ACTIVE environment variable.

https://github.com/cloudfoundry/java-buildpack/blob/master/docs/framework-spring_auto_reconfiguration.md

也就是说,您可以通过设置以下环境变量来禁用此 Spring 自动重新配置行为:

cf set-env <your-app> JBP_CONFIG_SPRING_AUTO_RECONFIGURATION '{ enabled: false }'

就端口而言,8080 是部署到 Cloud Foundry 的所有应用程序使用的默认端口。如果您有需要路由到您的应用程序的 HTTP(S) 流量,它将通过端口 8080。

也就是说,您在这里有几个选择:

  1. 第一个选项是让您的应用程序开始侦听端口 8080。这样,您映射到应用程序的任何路由的流量都将传送到您的应用程序。例如:如果您将 registry.example.com 映射到您的应用程序,那么转到 https://registry.example.com/ 将导致流量访问您的应用程序。 端口 8080 仅供内部使用,外部用户看不到它。这只会 public 公开您的应用,因此您需要适当地保护内容。

  2. 第二个选项是在您的注册表和服务应用程序之间映射一个 internal route to your registry. This would basically work the same as above, except that you would not be able to access the registry externally. That would potentially offer a more secure install, but it would also make it so that you cannot easily access the JHipster Registry UI. I'm mentioning this as an option, but it's probably not a good one unless you really need to hide the registry. Don't forget that if you use internal routes, you need to apply network policy to open ports。默认情况下,没有端口是开放的。


关于 JHipster Registry。我做了一个测试并能够使用这些步骤部署它(这绝不是使用 JHipster 的注册表的完整说明集,只是用于进行测试和 运行ning 的最小集,请参阅 JHipster docs了解更多详情)。

测试说明:

  1. 运行 git clone https://github.com/jhipster/jhipster-registry & git checkout v6.1.0。这将检查当时的最新版本(选择您想要的任何版本)。
  2. 编辑 src/main/resources/config/application-prod.yml,将密码从 admin 更改为其他内容。您不必这样做,但您确实应该这样做,尤其是在使用 public 路由进行部署时。
  3. 部署。如上所述,here 运行 jhipster cloudfoundry,回答要部署的问题并确保选择一个唯一的应用程序名称(第一个问题)。在部署时稍等片刻。
  4. 注册表现在应该 运行ning。抓住 URL 到它。

要完成测试,您需要一个服务应用程序:

  1. 使用 jhipster app 创建一个微服务应用程序。回答所有问题,对于这个测试来说真的无关紧要,因为该应用程序不会做任何事情,所以我只选择了最小安装(没有数据库,没什么特别的)。
  2. here所述,我们需要编辑两个文件。编辑 src/main/resources/config/bootstrap-prod.yml。将 spring.cloud.config.uri 属性 更改为指向您在 PWS 上的应用。例如:https://admin:${jhipster.registry.password}@your-registry-name-goes-here.cfapps.io/config.
  3. 并编辑'src/main/resources/config/application-prod.yml. Change theeureka.client.service-url.defaultZoneto point to your app on PWS. Ex:http://admin:${jhipster.registry.password} @your-registry-name-goes-here.cfapps.io/eureka/`
  4. 部署。如上所述,here 运行 jhipster cloudfoundry,回答要部署的问题并确保选择一个唯一的应用程序名称(第一个问题)。在部署时稍等片刻。

应用程序部署后,您应该能够转到您的注册表并查看它是否已注册您的服务。如果您等待一分钟左右但它没有注册,您将需要查看服务应用程序以了解发生了什么。

作为参考,这些说明使用的是我在上面描述的第一个选项。

希望对您有所帮助!