Help us learn about your current experience with the documentation. Take the survey.

教程:为认证访问 GitLab.com 项目配置 AWS ECR 拉取缓存规则

  1. 打开 Amazon ECR 控制台:https://console.aws.amazon.com/ecr/

  2. 在导航栏中,选择要配置私有注册表设置的 Region。

  3. 在导航窗格中,选择 Private registry, Pull through cache。

  4. 在 Pull through cache 配置页面,选择 Add rule。

在步骤 1:指定源页面,对于 Registry,选择 GitLab Container Registry,然后选择 Next。

在步骤 2:配置认证页面,对于 Upstream credentials,您必须将 GitLab Container Registry 的认证凭据存储在 AWS Secrets Manager 密钥中。您可以指定现有密钥或使用 Amazon ECR 控制台创建新密钥。

要使用现有密钥,选择 Use an existing AWS secret。对于 Secret name,使用下拉菜单选择您的现有密钥,然后选择 Next。有关使用 Secrets Manager 控制台创建 Secrets Manager 密钥的更多信息,请参阅 Storing your upstream repository credentials in an AWS Secrets Manager secret。

AWS 管理控制台仅显示名称使用 ecr-pullthroughcache/ 前缀的 Secrets Manager 密钥。该密钥还必须与创建拉取缓存规则的账户和 Region 相同。

要创建新密钥,选择 Create an AWS secret,执行以下操作,然后选择 Next。

对于 Secret name,为密钥指定一个描述性名称。密钥名称必须包含 1-512 个 Unicode 字符。

对于 GitLab Container Registry username,指定您的 GitLab Container Registry 用户名。

对于 GitLab Container Registry access token,指定您的 GitLab Container Registry 访问令牌。为遵循最小权限原则,请创建具有 Guest 角色且仅具有 read_registry 范围的 Group Access Token。

在步骤 3:指定目标页面,对于 Amazon ECR repository prefix,指定从源公共注册表拉取图像时使用的存储库命名空间,然后选择 Next。

默认情况下会填充命名空间,但也可以指定自定义命名空间。

在步骤 4:审查并创建页面,审查拉取缓存规则配置,然后选择 Create。

对每个要创建的拉取缓存重复上一步。拉取缓存规则为每个 Region 单独创建。

要验证您的 ECR Pull Through Cache 规则是否创建成功,您可以通过 AWS CLI 运行以下命令来验证该规则:

aws ecr validate-pull-through-cache-rule \
     --ecr-repository-prefix ecr-public \
     --region us-east-2

要验证您的 ECR Pull Through Cache 规则为 GitLab.com 上游注册表提供拉取访问,您可以通过运行 docker pull 命令来验证:

docker pull aws_account_id.dkr.ecr.region.amazonaws.com/{destination-namespace e.g. gitlab-ef1b}/{path to Gitlab.com project/group where image is hosted}/image_name:tag

示例 docker pull 命令:

docker pull aws_account_id.dkr.ecr.region.amazonaws.com/gitlab-ef1b/guided-explorations/ci-components/working-code-examples/kaniko-component-multiarch-build:latest