在 CircleCI 中使用来自 Artifact Registry 的私有图像
Using a private image from Artifact Registry in CircleCI
我正在尝试使用 CircleCI 设置 CI/CD,我希望我的管道的基础图像是自定义的 CI/CD 图像,它位于 Artifact Registry 中。在为工作提取基本图像时,我无法弄清楚如何正确验证 CircleCI。
我已经查看了两个 CirlceCI docs for authenticated pulls and the Artifact Registry 文档以进行身份验证,但我不知道如何将这两个拼图组合在一起。似乎 CircleCI 需要某种密码或访问密钥,而 Artifact Registry 需要 glcoud 直接 docker 配置(gcloud auth configure-docker
)访问令牌生成或交互式 docker 登录(cat KEY-FILE | docker login -u KEY-TYPE --password-stdin \ https://LOCATION-docker.pkg.dev
).
如何使用 Artifact Registry 中的私有 docker 图像作为 CircleCI 中作业的基础?
想通了:
- 从云控制台创建服务帐户 json 密钥
- 使用步骤 1 中创建的密钥在 CircleCI 中创建名为
GOOGLE_APPLICATIONS_CREDENTIALS
的项目级机密
- 将以下配置放入您的 CircleCI yaml 文件中:
docker:
- image: us-west1-docker.pkg.dev/<PROJECT>/<REPOSITORY>/<IMAGE>
auth:
username: _json_key
password: $GOOGLE_APPLICATION_CREDENTIALS
如果您对服务帐户密钥进行 base64 编码,请使用 _json_key_base64
作为用户名。请注意,密码是我们在步骤 2 中创建的秘密的名称。
我正在尝试使用 CircleCI 设置 CI/CD,我希望我的管道的基础图像是自定义的 CI/CD 图像,它位于 Artifact Registry 中。在为工作提取基本图像时,我无法弄清楚如何正确验证 CircleCI。
我已经查看了两个 CirlceCI docs for authenticated pulls and the Artifact Registry 文档以进行身份验证,但我不知道如何将这两个拼图组合在一起。似乎 CircleCI 需要某种密码或访问密钥,而 Artifact Registry 需要 glcoud 直接 docker 配置(gcloud auth configure-docker
)访问令牌生成或交互式 docker 登录(cat KEY-FILE | docker login -u KEY-TYPE --password-stdin \ https://LOCATION-docker.pkg.dev
).
如何使用 Artifact Registry 中的私有 docker 图像作为 CircleCI 中作业的基础?
想通了:
- 从云控制台创建服务帐户 json 密钥
- 使用步骤 1 中创建的密钥在 CircleCI 中创建名为
GOOGLE_APPLICATIONS_CREDENTIALS
的项目级机密 - 将以下配置放入您的 CircleCI yaml 文件中:
docker:
- image: us-west1-docker.pkg.dev/<PROJECT>/<REPOSITORY>/<IMAGE>
auth:
username: _json_key
password: $GOOGLE_APPLICATION_CREDENTIALS
如果您对服务帐户密钥进行 base64 编码,请使用 _json_key_base64
作为用户名。请注意,密码是我们在步骤 2 中创建的秘密的名称。