远程仓库概览

本文档简要介绍了远程仓库。如需相关说明,请参阅 如何创建远程仓库,请参阅 创建远程代码库

Artifact Registry 配额和限制适用于远程代码库。

远程仓库的工作原理

远程仓库存储来自预设外部来源(例如 Docker)的制品 Hub、Maven Central、Python 软件包索引 (PyPI)、Debian 或 CentOS 以及 用户定义的来源(适用于支持的格式)。一个遥控器 可充当外部来源的代理, 对外部依赖项进行管理首次请求 Artifact Registry 软件包 下载软件包并将其缓存在远程仓库中。下次您 请求相同的软件包版本,Artifact Registry 会提供缓存的副本。

如果您从不存在的上游来源请求工件,或者 未包含您指定的版本,请求将失败。

其他仓库模式包括:

  • 标准:默认的代码库模式。您上传或发布 私有软件包等工件直接上传到标准代码库中。 虽然您可以直接从各个标准代码库下载, 通过虚拟代码库访问代码库组可以简化 工具配置。
  • 虚拟:充当单一访问权限的代码库 多个上游仓库的点,包括远程仓库和标准仓库 代码库

上游身份验证

Artifact Registry 远程仓库支持 基本身份验证 和用户定义的上游来源(适用于支持的格式)。如需详细了解 如何向远程仓库上游来源进行身份验证,请参阅 为远程仓库上游配置身份验证

使用场景和优势

更快速、更可靠地访问工件
在 Artifact Registry 中存储公共依赖项的缓存副本 缩短其他 Google Cloud 服务检索图片时的延迟时间。 如果外部公共代码库,则缓存的工件仍然可用 因为服务中断或其他问题而处于离线状态。
更安全的依赖项解析

将远程仓库与虚拟仓库搭配使用以降低风险 与公共依赖项相关联有些工具不提供 当私有代码库和公共代码库混在一起时,控制搜索顺序 客户端配置这种类型的配置容易受到 依赖项混淆攻击 包含不良代码的软件包上传到公共代码库,以诱骗客户选择 错误版本。

您不必直接将客户端配置为搜索多个代码库 可以配置虚拟代码库,以对您的私有代码库进行优先级排序 远程代码库。

如果 Artifact Registry 位于 VPC Service Controls 服务边界内, Artifact Registry 拒绝访问边界外的上游来源 默认情况。允许特定位置的远程仓库访问 在边界外配置的外部来源,请参阅说明 VPC Service Controls 配置

如需了解其他依赖项管理最佳实践,请参阅 依赖项管理

更新软件包索引和元数据

更新软件包索引和元数据等可变文件 从上游来源获取。默认值 下表列出了所有特定文件类型:

格式 文件类型 默认更新存在时间
Maven maven-metadata.xml 5 分钟
archetype-catalog.xml 1 小时
Npm 清单文件 5 分钟
Python 索引文件 1 小时
Docker 列出/获取代码缓存 1 小时
Apt/Yum(预览版) 索引文件 2 分钟
软件包文件 72 小时

支持的格式

请参阅以下部分,了解适用于预设和用户定义的格式的格式 远程仓库。

预设上游

您可以针对以下代码库格式创建远程代码库,并 对应的预设上游来源:

格式 软件包类型 上游网址 上游预设名称
Docker 公开或私享 https://registry-1.docker.io DOCKER-HUB
Maven 公开或私享 https://repo.maven.apache.org/maven2 MAVEN-CENTRAL
npm 公开或私享 https://registry.npmjs.org NPMJS
Python 公开 https://pypi.io PYPI
操作系统软件包(预览版 公开 请参阅支持的操作系统软件包上游 请参阅支持的操作系统软件包上游

操作系统软件包预设上游

您可以通过选择代码库库来创建操作系统软件包远程代码库 并自定义特定代码库的网址的其余部分。通过 以下代码库库受支持:

公寓

代码库 网址前缀 代码库基名称
Debian http://deb.debian.org 迪比安
Ubuntu LTS 或 Pro http://archive.ubuntu.com UBUNTU

美味

代码库 网址前缀 代码库库 名称
CentOS http://mirror.centos.org 森托斯
http://debuginfo.centos.org CENTOS_DEBUG
https://vault.centos.org CENTOS_VAULT
https://mirror.stream.centos.org CENTOS_STREAM
多岩石 http://dl.rockylinux.org ROCKY
费多拉帽额外套票 适用于企业版 Linux (EPEL) https://dl.fedoraproject.org/pub/epel EPEL

用户定义的上游

您可以在 Google Cloud 控制台中为用户定义的上游来源创建 以下格式:

  • Docker
  • npm
  • Maven
  • Python

下面的表格(并非详尽无遗)列出了一些常见的上游 URI。

格式 上游 URI 注册表名称
Docker https://public.ecr.aws AWS ECR 公开库
Docker https://registry.k8s.io Kubernetes 容器注册表
Docker https://MY_ARTIFACTORY_INSTANCE.jfrog.io 青蛙神器乐
Docker https://MY_NEXUS_IP Nexus
npm https://npm.pkg.github.com GitHub Npm 注册表
npm https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/api/npm/MY_UPSTREAM_REPOSITORY 青蛙神器乐
npm https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Maven https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/MY_UPSTREAM_REPOSITORY 青蛙神器乐
Maven https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus
Python https://MY_ARTIFACTORY_INSTANCE.jfrog.io/artifactory/api/pypi/MY_UPSTREAM_REPOSITORY 青蛙神器乐
Python https://MY_NEXUS_IP/repository/MY_UPSTREAM_REPOSITORY Nexus

地点

  • MY_ARTIFACTORY_INSTANCE 是您的 Jfrog Artifactory 的名称 上游实例。
  • MY_NEXUS_IP 是 Nexus 上游的 IP 地址和端口 实例。
  • MY_UPSTREAM_REPOSITORY 是上游代码库的名称; Nexus 和 Artifactory 示例中使用的资源。

限制

除了 Artifact Registry 配额和限制之外, 代码库存在以下限制:

  • Maven 远程仓库不允许将版本政策设置为快照 或发布。

后续步骤