使用 GCloud 容器构建器将图像拉取并推送到另一个项目

Posted

技术标签:

【中文标题】使用 GCloud 容器构建器将图像拉取并推送到另一个项目【英文标题】:Pull and Push image to another project using GCloud container builder 【发布时间】:2018-06-08 07:48:44 【问题描述】:

我有 2 个 gcloud 项目,例如 foobar。我在foo 项目的容器注册表中有一个名为gcr.io/foo/cat:latest 的docker 映像。需要一种方法将此图像提升为bar 项目,同时将标签重命名为gcr.io/bar/cat:1.0.0。如何在bar项目的gcloud容器服务中做到这一点?

【问题讨论】:

像原来一样给它标签并推送它。 但是如何从一个项目中拉取并推送到另一个项目?服务帐户仅适用于一个项目。我可以在项目之间共享服务帐户吗?容器构建器使用 cloudbuild.gserviceaccount.com 帐户运行。它无权从另一个项目中提取。 【参考方案1】:

能够按照这篇文章完成它:https://medium.com/google-cloud/using-single-docker-repository-with-multiple-gke-projects-1672689f780c

步骤: 1、从IAM页面获取bar项目的容器构建器服务账号ID。提示:会员名以@cloudbuild.gserviceaccount.com结尾。 2. 将新的 IAM 成员添加到 foo 项目,使用我们之前获得的服务帐户 ID 并具有“存储对象查看器”权限。

现在bar项目的容器构建器服务账号可以访问(拉取)foo项目的容器镜像。

【讨论】:

确保已启用云构建器 API。

以上是关于使用 GCloud 容器构建器将图像拉取并推送到另一个项目的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 Git 从服务器 1 拉取并从桌面 1 推送到 GitHub 吗?

AWS ECR Repository - 如何从一个账户复制图像并推送到另一个账户

芭蕾舞女演员:通过k8s插件构建图像并推送到gcr.io.

将Go语言编写的HttpServer部署到Docker并推送到DockerHub

将Go语言编写的HttpServer部署到Docker并推送到DockerHub

在 python 脚本中使用 ssh 代理