如何在Docker Ubuntu映像上validationGoogle云端SDK?

我有点困惑,我如何可以在Docker容器上validationgcloud sdk。 现在,我的docker文件包括以下内容:

#Install the google SDK RUN curl https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz > /tmp/google-cloud-sdk.tar.gz RUN mkdir -p /usr/local/gcloud RUN tar -C /usr/local/gcloud -xvf /tmp/google-cloud-sdk.tar.gz RUN /usr/local/gcloud/google-cloud-sdk/install.sh RUN /usr/local/gcloud/google-cloud-sdk/bin/gcloud init 

但是,我很困惑我将如何authentication? 当我在我的机器上运行gcloud auth application-default login时,它会在chrome中打开一个新标签,提示我login。 如果在容器中的谷歌浏览器中打开一个新标签页,我将如何在Docker容器上input我的凭据?

在Docker集线器上完成Docker容器设置时,可以考虑使用deb包。

这就是说你不应该运行gcloud init或者gcloud auth application-default login或者gcloud auth login …这些是启动浏览器的交互命令。 为容器提供凭证,为其提供服务帐户密钥文件。

您可以从云端控制台下载: https : gcloud = gcloud或使用gcloud命令创build

 gcloud iam service-accounts keys create 

见参考指南 。

无论哪种方式,一旦你有密钥文件将其添加到您的容器并运行

 gcloud auth activate service-account --key-file=MY_KEY_FILE.json 

现在应该设置,但是如果要将其用作应用程序默认凭据(ADC),即在其他库和工具的上下文中,则需要将以下环境variables设置为指向密钥文件:

 export GOOGLE_APPLICATION_CREDENTIALS=/path/to/MY_KEY_FILE.json 

有一件事要指出, gcloud工具不使用ADC,所以后来如果你改变你的帐户到其他东西,例如通过

 gcloud config set core/account my_other_login@gmail.com 

其他工具和库将通过ADC密钥文件继续使用旧帐户,但gcloud现在将使用不同的帐户。