在本地docker run中传递google默认应用程序凭据

koz*_*kow 7 google-authentication google-cloud-platform google-cloud-sdk

有没有办法通过docker run 传递我的本地google默认应用程序凭据(https://developers.google.com/identity/protocols/application-default-credentials)?

我的用例:

  • 我的机器上本地运行的代码正确处理默认应用程序凭据
  • 在GCE实例上的docker镜像内运行的代码也可以正确处理默认的应用程序凭据
  • 问题出在我的机器上"docker run".在docker容器中运行的代码不使用主机默认应用程序凭据.

如果我能告诉"docker run"将主机google默认应用程序凭据传递给docker镜像,那将是很好的.

Ale*_*rov 15

通过-v ~/.config:/root/.config应该使它工作.这假设您的本地代码使用gcloud auth login〜/ .config/gcloud中存储的应用程序默认凭据,并且容器中的用户主目录是/ root.

  • 工作,谢谢.对于阅读本文的人 - 你可能不需要整个.config,因为还有更多与gcloud无关的配置. (2认同)
  • @kozikow是对的,〜/ .config/gcloud就够了.我在这篇新博客文章中记录了如何在Windows和Linux上执行此操作:http://blog.ctaggart.com/2016/11/pass-google-application-default.html (2认同)