在本地的docker run中传递Google默认应用凭据

31

有没有一种方法可以通过docker run传递我的本地Google默认应用凭据(https://developers.google.com/identity/protocols/application-default-credentials)?

我的用例:

  • 在我的计算机上运行的代码正确处理默认应用凭据
  • 在GCE实例上的Docker镜像中运行的代码也可以正确处理默认应用凭据
  • 问题出现在我的机器上的“docker run”上。在Docker容器中运行的代码不使用主机默认应用凭据。

如果我可以告诉“docker run”将主机的Google默认应用凭据传递给Docker镜像,那就太好了。

1个回答

43

传递-v ~/.config:/root/.config应该可以使它正常工作。这假设您的本地代码使用由gcloud auth login存储在~/.config/gcloud中的应用程序默认凭据,并且容器中用户的主目录为/root。


4
好的。对于阅读本文的人,您可能不需要整个.config文件,因为其中还有许多与gcloud无关的配置。感谢您的阅读。 - kozikow
6
@kozikow是正确的,~/.config/gcloud就足够了。我在这篇新博客文章中记录了如何在Windows和Linux上完成此操作:http://blog.ctaggart.com/2016/11/pass-google-application-default.html - Cameron Taggart
如果你设置了这个变量,请执行unset GOOGLE_APPLICATION_CREDENTIALS。这是在之前使用服务账号凭据的情况下需要执行的操作,就像我之前做的那样。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接