我想从两个git仓库中获取属性。一个是https://username@bitbucket.my.domain.com/share.git-将具有包含一些公用键值对的属性文件,另一个是https://username@bitbucket.my.domain.com/service.git-将具有所有微服务的属性文件。
在部署服务时,配置服务器仅读取一个yml文件(位于https://username@bitbucket.my.domain.com/share.git存储库中)。我缺少什么?如何从另一个仓库(例如https://username@bitbucket.my.domain.com/service.git)读取属性文件?
我想在PCF中部署该服务。因此,我使用以下json在PCF中配置了配置服务器。
{
"count": 1,
"git": {
"label": "feature",
"uri": "https://username@bitbucket.my.domain.com/share.git",
"username": "username",
"password": "password",
"repos": {
"configserver": {
"password": "password",
"label": "feature",
"uri": "https://username@bitbucket.my.domain.com/service.git"
"username": "username"
}
}
}
}
我的服务名称是 LogDemo ,并且弹簧配置文件是 active 。我已经创建了两个yml文件,并将其放置在相应的仓库中。 (我给两个文件都使用了相同的名称,例如 LogDemo-active.yml )。在部署服务时,配置服务器仅读取一个yml文件(位于https://username@bitbucket.my.domain.com/share.git存储库中)。 / env 给我以下内容:
{
"profiles": [
"active",
"cloud"
],
"server.ports": {
"local.server.port": 8080
},
"configService:configClient": {
"config.client.version": "234e59d4a9f80f035f00fdf07e6f9f16e5560a55"
},
"configService:https://username@bitbucket.my.domain.com/share.git/LogDemo-active.yml": {
"key1": "value1",
"key2": "value2"
},
...................
...................
我缺少什么?如何也从其他仓库(例如https://username@bitbucket.my.domain.com/service.git)读取属性文件?
下面是我的bootstrap.yml
spring:
application:
name: LogDemo
mvc:
view:
prefix: /
suffix: .jsp
这是我的清单文件
---
inherit: baseManifest.yml
applications:
- name: LogDemo
host: LogDemo
env:
LOG_LEVEL: INFO
spring.profiles.active: active
TZ: America/New_York
memory: 1024M
domain: my.domain.com
services:
- config-server-comp
答案 0 :(得分:0)
使用多个存储库时,将应用的存储库取决于为这些存储库定义的模式。默认模式为<repo-name>/*
。因此,将存储库名称更改为LogDemo
将激活您应用的存储库,因为应用程序名称spring.application.name
为LogDemo
。
如果一个或多个模式匹配,则将使用匹配模式的存储库。如果没有任何模式匹配,则使用默认值。
此处的文档中有完整的详细信息。
如果不需要或不需要模式匹配功能,则可以使用[composite backend]( https://docs.pivotal.io/spring-cloud-services/2-0/common/config-server/composite-backends.html)。复合后端允许您定义多个Git存储库。请参阅此处的第一个配置示例。