gcloud 命令行客户端 - 并行处理多个 gCloud 项目
gcloud command line client - working on multiple gCloud projects in parallel
我们正在使用 Jenkins 构建数据并将其推送到 Google 云存储。
我们只有一台构建机器;和多个不同的 Google 项目(测试;生产)
如果 'jenkins' 用户在 1 个构建节点上进行了并行构建;有没有什么方法可以将参数传递给 gcloud docker -- push
,以便单独的凭据验证一个推送到 testing
Google 项目,另一个推送到 production
项目?
从 Cloud SDK 的角度来看,这里有几个选项。
第一个是使用不同的配置目录。 Cloud SDK 默认使用 ~/.config/gcloud
作为配置目录; $CLOUDSDK_CONFIG
环境变量覆盖了它。如果您使用不同的配置目录,这实际上与进行两次不同的安装是一样的,并且您 运行 没有任何风险,例如竞争条件。
第二种是使用named configurations。这可能最容易用一个例子来说明:
$ 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 &
如果您只想更改配置 属性,可以通过环境变量 $CLOUDSDK_<SECTION>_<PROPERTY>
进行更改。例如,$CLOUDSDK_CORE_ACCOUNT
或 $CLOUDSDK_CORE_PROJECT
。对于一些常用标志,您可以在每个 gcloud 命令上设置它们:例如 --project
或 --account
。有关这些常用标志的概述,请参阅 gcloud help。
也就是说,使用 gcloud docker
您可能 运行 在任何这些情况下都会遇到问题,因为 docker
共享一个配置文件。您最好的选择可能是将 docker-credential-gcr 与不同的 $GOOGLE_APPLICATION_CREDENTIALS
文件一起使用。
我们正在使用 Jenkins 构建数据并将其推送到 Google 云存储。
我们只有一台构建机器;和多个不同的 Google 项目(测试;生产)
如果 'jenkins' 用户在 1 个构建节点上进行了并行构建;有没有什么方法可以将参数传递给 gcloud docker -- push
,以便单独的凭据验证一个推送到 testing
Google 项目,另一个推送到 production
项目?
从 Cloud SDK 的角度来看,这里有几个选项。
第一个是使用不同的配置目录。 Cloud SDK 默认使用 ~/.config/gcloud
作为配置目录; $CLOUDSDK_CONFIG
环境变量覆盖了它。如果您使用不同的配置目录,这实际上与进行两次不同的安装是一样的,并且您 运行 没有任何风险,例如竞争条件。
第二种是使用named configurations。这可能最容易用一个例子来说明:
$ 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 &
如果您只想更改配置 属性,可以通过环境变量 $CLOUDSDK_<SECTION>_<PROPERTY>
进行更改。例如,$CLOUDSDK_CORE_ACCOUNT
或 $CLOUDSDK_CORE_PROJECT
。对于一些常用标志,您可以在每个 gcloud 命令上设置它们:例如 --project
或 --account
。有关这些常用标志的概述,请参阅 gcloud help。
也就是说,使用 gcloud docker
您可能 运行 在任何这些情况下都会遇到问题,因为 docker
共享一个配置文件。您最好的选择可能是将 docker-credential-gcr 与不同的 $GOOGLE_APPLICATION_CREDENTIALS
文件一起使用。