在自定义构建的CentOS Docker容器中部署Google服务帐户凭据以在Google的Container Engine或其“container-vm”上运行的最佳方法是什么?这种行为自动发生在google/cloud-sdk容器上,该容器运行debian并包含我不使用的东西,例如app-eng / java / PHP.理想情况下,我尝试访问项目中的非公共资源,例如Google Cloud Storage存储桶对象,而无需每次启动大量这些容器时都进行登录和授权.
例如,在运行在GCE上的基本Centos容器上安装了自定义代码并安装了gcloud / gsutil,当您运行时:
docker run --rm -ti custom-container gsutil ls
系统会提示您运行“gsutil config”以获得授权,我希望如此.
但是,将google / cloud-sdk容器拉到同一个GCE并执行相同的命令,它似乎巧妙地配置了凭据的继承(可能来自主机容器-vm的凭据?).在GCE上运行容器以访问私有资源时,这似乎绕过运行“gsutil config”.
我希望在最小的构建Centos容器中复制该行为以进行大规模部署.
最佳答案
更新:截至2016年12月15日,更新现有VM范围的功能现已处于测试阶段;有关详细信息,请参阅this SO answer.
原文链接:https://www.f2er.com/docker/436227.html旧答案:一种方法是使用appropriate scopes创建VM(例如,Google云端存储只读或读写),然后VM上的所有进程(包括容器)都可以访问可通过OAuth 2.0使用的凭据.请参阅Google Cloud Storage和Google Compute Engine的文档.
请注意,一旦使用一组范围创建VM,以后就不能更改它们(既不添加也不删除),因此您必须确保在创建VM实例时设置正确的范围集.