在 Gitlab 中运行代理存储库?

问题描述 投票:0回答:2

我有一个使用 Nexus 的项目,Nexus 有一个到 Maven Central 的代理/镜像存储库。

我需要过渡到使用 Gitlab,但这是一个企业 Gitlab,我有严格的方法来增强它。我看到我可以创建一个 GitLab Maven 代理,但随后必须根据 https://docs.gitlab.com/ee/administration/packages/dependency_proxy.html 配置 GitLab,我不确定他们会这么做允许。

还有其他方法可以使用 Gitlab 实现代理存储库吗?

maven gitlab nexus artifact
2个回答
1
投票

目前,据我所知,还没有办法实现这一目标。

目前(Gitlab 版本 13.9),依赖代理仅适用于 Docker Images

检查此问题,maven 和 npm 的代理似乎已在 Gitlab 14 里程碑中计划


0
投票

GitLab 16.8(2024 年 1 月)开始支持此类功能(但仅适用于 Premium 或 Ultimate GitLab 实例):

使用 Maven 依赖代理加快构建速度

一个典型的软件项目依赖于各种依赖项,我们称之为包。包可以在内部构建和维护,也可以从公共存储库获取。
根据我们的用户研究,我们了解到大多数项目都使用 50/50 的公共和私有包混合。软件包安装顺序非常重要,因为使用不正确的软件包版本可能会给您的管道带来重大更改和安全漏洞。

现在您可以向您的 GitLab 项目添加一个外部 Java 存储库。添加后,当您使用依赖代理安装包时,GitLab 首先检查项目中是否有该包。如果未找到,GitLab 会尝试从外部存储库中提取包。

当从外部存储库中提取包时,它将被导入到 GitLab 项目中。下次拉取该特定包时,它是从 GitLab 而不是外部存储库拉取的。
即使外部存储库存在连接问题并且包存在于依赖代理中,拉取包仍然有效,使您的管道更快、更可靠。

如果外部存储库中的包发生更改(例如,用户删除版本并发布具有不同文件的新版本),依赖代理会检测到它。它会使软件包失效,因此 GitLab 会提取较新的软件包。这可确保下载正确的软件包,并有助于减少安全漏洞。

请参阅文档史诗

© www.soinside.com 2019 - 2024. All rights reserved.