我们使用Jenkins构建数据并将其推送到Google云端存储。gcloud命令行客户端 - 并行处理多个gCloud项目
我们有一台生成机器;和多个不同的Google项目(测试;生产)
如果在1个构建节点上由'jenkins'用户完成并行构建,有什么方法可以将参数传递到gcloud docker -- push
,这样单独的凭证就可以验证一次推送到Google项目的testing
,另一个到production
项目吗?
我们使用Jenkins构建数据并将其推送到Google云端存储。gcloud命令行客户端 - 并行处理多个gCloud项目
我们有一台生成机器;和多个不同的Google项目(测试;生产)
如果在1个构建节点上由'jenkins'用户完成并行构建,有什么方法可以将参数传递到gcloud docker -- push
,这样单独的凭证就可以验证一次推送到Google项目的testing
,另一个到production
项目吗?
从云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
文件。