我們使用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
文件。