Git &引用;gcloud auth activate service account“;及;gcloud源repos克隆“;错误

Git &引用;gcloud auth activate service account“;及;gcloud源repos克隆“;错误,git,docker,google-cloud-platform,service-accounts,google-cloud-sdk,Git,Docker,Google Cloud Platform,Service Accounts,Google Cloud Sdk,我想同时使用以下工具: gcloud服务帐户 gcloud源回购(作为项目依赖项的一部分) 我正在采取的步骤: 1) 登录谷歌云控制台,网址为: 2) 创建一个服务帐户,暂时授予“所有者”权限,并将json密钥作为account-name.json下载 3) 添加Dockerfile: FROM google/cloud-sdk COPY account-name.json /tmp/account-name.json RUN gcloud auth activate-service

我想同时使用以下工具:

  • gcloud服务帐户
  • gcloud源回购(作为项目依赖项的一部分)
我正在采取的步骤:

1) 登录谷歌云控制台,网址为:

2) 创建一个服务帐户,暂时授予“所有者”权限,并将json密钥作为account-name.json下载

3) 添加Dockerfile:

FROM google/cloud-sdk
COPY account-name.json /tmp/account-name.json
RUN gcloud auth activate-service-account --key-file /tmp/account-name.json
RUN rm /tmp/account-name.json
RUN gcloud config set project project-name
RUN gcloud config set account account-name@project-name.iam.gserviceaccount.com
RUN gcloud source repos clone default --project=project-name
4) 构建并运行docker:

docker build  -t service-account-repo .
docker run -ti service-account-repo
我得到的错误是:

错误:(gcloud.source.repos.clone)您当前没有活动的 已选择帐户。请运行:

$gcloud auth登录

获取新凭据,或者如果您已使用 不同帐户:

$gcloud配置集帐户

选择要使用的已通过身份验证的帐户

无论我尝试使用哪种命令,包括设置帐户和身份验证登录,通过docker exec都无法工作

如果我在本地运行相同的命令,它会工作,因为我已经使用我的主gcloud帐户登录


gcloud服务帐户是否与gcloud源回购协议配合使用?有没有人在没有正常帐户登录的情况下有一个工作示例?我是否需要启用其他云API才能使其工作?

您需要运行的唯一
gcloud
命令是

gcloud auth activate-service-account --key-file /tmp/account-name.json
它设置
core/account
属性。之后

gcloud source repos clone default --project=project-name
应该可以工作(无需设置项目,因为您指定了命令的一部分)

确保安装了git,并且它必须位于路径上


需要注意的是,
gcloud
将激活的凭证存储在
~/.config/gcloud
目录中。这可能不是你想要的。您可以通过设置
CLOUDSDK\u CONFIG
环境变量指向另一个位置来更改它,最好不是docker映像本身的一部分

我很确定我已经遵循了这些步骤,它不允许访问该项目。你试过我的例子吗?它是否适用于您?您可以指定您正在使用的dockerfile,还是使用自定义dockerfile?