如何在docker Ubuntu映像上验证google cloud SDK?

时间:2017-08-03 00:15:34

标签: docker docker-compose google-cloud-sdk

我对如何验证docker容器上的gcloud 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

然而,我很困惑如何进行身份验证?当我在我的机器上运行gcloud auth application-default login时,它会在chrome中打开一个新选项卡,提示我登录。如果在容器中的谷歌浏览器中打开新选项卡,我将如何在docker容器上输入我的凭据?

2 个答案:

答案 0 :(得分:9)

您可以考虑在设置Docker容器时使用deb软件包,因为它是在docker hub上完成的。

那说你不应该运行$data = fgetcsv($file)gcloud initgcloud auth application-default login ...这些是启动浏览器的交互式命令。要向容器提供凭据,请使用服务帐户密钥文件。

您可以从云控制台下载一个:https://console.cloud.google.com/iam-admin/serviceaccounts/project?project=YOUR_PROJECT或使用gcloud auth login命令创建

gcloud

请参阅reference guide

无论哪种方式,只要您将密钥文件添加到容器并运行

gcloud iam service-accounts keys create

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

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

有一点需要注意的是,export GOOGLE_APPLICATION_CREDENTIALS=/path/to/MY_KEY_FILE.json 工具不使用ADC,因此稍后如果您将帐户更改为其他内容,例如通过

gcloud

其他工具和库将继续通过ADC密钥文件使用旧帐户,但gcloud config set core/account my_other_login@gmail.com 现在将使用不同的帐户。

答案 1 :(得分:-1)

您可以将本地Google SDK凭据映射到图像中。 [Source]

首先使用以下方式登录:

$ gcloud auth application-default login

然后将以下内容添加到docker-compose.yaml:

volumes:
  - ~/.config/:/root/.config