如何要求 Spring Cloud Config 服务器从特定分支签出配置?

新手上路,请多包涵

我有以下 Spring 云配置 application.yml:

 spring:
  application:
    name: configserver
  cloud:
    config:
      server:
        git:
          uri: https://xyz@bitbucket.org/xyz/microservices-configs.git
          username: xyz
          password: xyz
          basedir: target/configs
server:
  port: 8881

以下是我的 bootstrap.yml 的用户微服务:

 spring:
  application:
    name: userservice
  cloud:
    config:
      uri: http://localhost:8881/

情景 - 1

当我像这样在浏览器中点击配置服务器时:

http://localhost:8881/development/userservice-development.yml

它正确地提供文件。当我查看 basedir 即目标/配置时,我看到:

 - userservice.yml
- gateway.yml

正是我想要的, 因为我只在开发分支中添加了这两个文件

情景 - 2

当我使用以下命令运行我的 userservice 微服务项目时:

mvn clean spring-boot:run -Dspring.profiles.active=development

它从 git 获取正确的文件,但 它从 master 分支结帐!不像我所期望的那样来自开发分支。我期待对吗? (仅供参考,我在主分支中有开发和生产 yml)

所以问题是,我们如何去使用配置服务器?是否有任何配置可以设置为仅从该特定分支获取 yml ?我相信我们需要设置一些标签,因为根据文档,默认标签是主标签。谁能让我知道我们如何在上述情况下设置标签?

原文由 A Gupta 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 324
2 个回答

根据 文档,您要在配置客户端中设置的配置是:

 spring.cloud.config.label=mybranch

其中 mybranch 是您的 git 存储库中的现有分支。

原文由 spencergibb 发布,翻译遵循 CC BY-SA 3.0 许可协议

配置服务器旨在使用配置文件来分离环境。例子:

 /{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

分支使配置不一致。

配置服务器的概念基于 12-factor config ( http://12factor.net/config )。

查看详细原因。

原文由 Hlex 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题