gcloud命令行客户端 - 并行处理多个gCloud项目

bre*_*ent 1 google-cloud-platform gcloud

我们使用Jenkins构建数据并将数据推送到Google云端存储.

我们有一台构建机器; 和多个不同的Google项目(测试;制作)

如果'jenkins'用户在1个构建节点上进行并行构建; 有没有办法传递参数,gcloud docker -- push以便单独的凭证验证一个推送到testing谷歌项目,另一个推送到production项目?

Zac*_*man 5

从Cloud SDK的角度来看,这里有一些选项.

第一个是使用不同的配置目录.默认情况下,Cloud SDK ~/.config/gcloud用作其配置目录; 在$CLOUDSDK_CONFIG环境变量覆盖此.如果您使用不同的配置目录,它实际上与具有两个不同的安装相同,并且您不会冒任何风险,例如竞争条件.

第二个是使用命名配置.这可能是最容易用一个例子来说明:

$ gcloud config configurations create foo  # creates and activates a new configuration
$ gcloud auth login  # you may want to use `activate-service-account` for non-interactive use
$ gcloud config set project foo-project
$ gcloud config configurations create bar
$ gcloud auth login
$ gcloud config set project bar-project
$ CLOUDSDK_ACTIVE_CONFIG_NAME=foo gcloud version &
$ CLOUDSDK_ACTIVE_CONFIG_NAME=bar gcloud version &
Run Code Online (Sandbox Code Playgroud)

如果您只想更改配置属性,可以通过环境变量执行此操作$CLOUDSDK_<SECTION>_<PROPERTY>.例如,$CLOUDSDK_CORE_ACCOUNT$CLOUDSDK_CORE_PROJECT.对于某些常见标志,您可以在每个gcloud命令上设置它们:--project或者--account,例如.有关这些常见标志的概述,请参阅gcloud help.

也就是说,由于gcloud dockerdocker共享一个配置文件,因此您可能会在任何这些情况下遇到问题.你最好的选择可能是使用docker-credential-gcr和不同的$GOOGLE_APPLICATION_CREDENTIALS文件.