maven - 配置 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。当我确认这一点时,我会更新。
解决方案
是的,您需要为 SCDF 和 Skipper 服务器应用 maven repo 配置。
SCDF 服务器需要 Maven 配置:
- 下载流/任务应用程序的应用程序元数据
- 在启动时下载任务应用程序(如果是本地部署者),并为部署者(CloudFoundry)设置适当的 Maven 配置
Skipper 服务器需要 Maven 配置:
- 下载流应用程序(用于本地部署者)
- 为 CF 部署程序设置 Maven 配置
根据您选择的部署程序设置,您需要在任一或两个 SCDF/Skipper 服务器上配置 maven repo 配置。