首页 > 解决方案 > 配置 Spring Cloud Dataflow 服务器以使用部署令牌访问 GitLab 存储库(包注册)

问题描述

由于我已经使用 GitLab 包注册作为远程 maven 存储库有一段时间了,我想用它来部署 spring 云数据流服务器。

要使用 GitLab 包注册,本地 maven 设置具有带有 wagon httpHeaders 属性的服务器部分:

    <server>
      <id>gitlab-maven</id>
      <configuration>
        <httpHeaders>
          <property>
            <name>Deploy-Token</name>
            <value>DEMO_TOKEN</value>
          </property>
        </httpHeaders>
      </configuration>
    </server>
  </servers>
</settings>

我尝试在 docker-compose 数据流服务器的环境中将远程 maven 存储库添加到数据流服务器(对数据流服务器和船长也进行了尝试):

  dataflow-server:
    image: springcloud/spring-cloud-dataflow-server:${DATAFLOW_VERSION:?DATAFLOW_VERSION is not set!}
    container_name: dataflow-server
    ports:
      - "9393:9393"
    environment:
       ...
      - maven.remote-repositories.gitlab1.url=GitLab repo
      - maven.remote-repositories.gitlab1.auth.username=Deploy-Token
      - maven.remote-repositories.gitlab1.auth.password=DEMO_TOKEN

它不起作用并给出错误消息:

dataflow-server | java.lang.IllegalStateException: Failed to resolve MavenResource: com.example:processor:jar:0.0.1-SNAPSHOT. Configured remote repositories: : [gitlab1],[springRepo]

看起来数据流服务器已尝试 GitLab 存储库“gitlab1”但失败了。我不确定这是否是令牌或凭据或其他一些配置的问题。

是否有人可以分享有关使用 Dataflow 服务器中的 GitLab 部署令牌访问工件的经验?非常感谢您的帮助。

干杯。

更新:

我也试过这个解决方案https://docs.spring.io/spring-cloud-dataflow/docs/current/reference/htmlsingle/#_wagon 用于数据流。

 gitlab4:
        url: gitLabURL
        wagon:
          http:
            all:
              use-preemptive: true
        auth:
            username: Deploy-Token
            password: DEMO_TOKEN

它没有用。仍在尝试。

更新2:

我也为船长应用了最后一个解决方案,现在它看起来像 wokring。当我确认这一点时,我会更新。

标签: mavengitlab-cispring-cloud-dataflowgitlab-api

解决方案


是的,您需要为 SCDF 和 Skipper 服务器应用 maven repo 配置。

SCDF 服务器需要 Maven 配置:

  • 下载流/任务应用程序的应用程序元数据
  • 在启动时下载任务应用程序(如果是本地部署者),并为部署者(CloudFoundry)设置适当的 Maven 配置

Skipper 服务器需要 Maven 配置:

  • 下载流应用程序(用于本地部署者)
  • 为 CF 部署程序设置 Maven 配置

根据您选择的部署程序设置,您需要在任一或两个 SCDF/Skipper 服务器上配置 maven repo 配置。


推荐阅读