本地docker容器上的gcloud错误:在GCE实例外部请求GCE凭据

本地docker容器上的gcloud错误:在GCE实例外部请求GCE凭据,docker,google-app-engine,google-cloud-platform,google-authentication,Docker,Google App Engine,Google Cloud Platform,Google Authentication,我试图将一个文件从运行docker容器复制到google bucket 在我的GCP项目中启用了云资源API 我试图从笔记本电脑上的本地docker执行的命令: gsutil cp自述文件gs:// 我得到的错误如下所示 Copying file://README [Content-Type=application/octet-stream]... Your "GCE" credentials are invalid. Please run

我试图将一个文件从运行docker容器复制到google bucket

在我的GCP项目中启用了
云资源API

我试图从笔记本电脑上的本地docker执行的命令:
gsutil cp自述文件gs://

我得到的错误如下所示

Copying file://README [Content-Type=application/octet-stream]...
Your "GCE" credentials are invalid. Please run
                              
$ gcloud auth login

   
apitools.base.py.exceptions.ResourceUnavailableError: GCE credentials requested outside a   GCE instance 
我的
Dockerfile
配置

FROM python:3.6.11
WORKDIR /root

# Installs google cloud sdk, this is mostly for using gsutil to export model.
RUN wget -nv \
    https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz && \
    mkdir /root/tools && \
    tar xvzf google-cloud-sdk.tar.gz -C /root/tools && \
    rm google-cloud-sdk.tar.gz && \
    /root/tools/google-cloud-sdk/install.sh --usage-reporting=false \
        --path-update=false --bash-completion=false \
        --disable-installation-options && \
    rm -rf /root/.config/* && \
    ln -s /root/.config /config && \
    # Remove the backup directory that gcloud creates
    rm -rf /root/tools/google-cloud-sdk/.install/.backup

# Path configuration
ENV PATH $PATH:/root/tools/google-cloud-sdk/bin
# Make sure gsutil will use the default service account
RUN echo '[GoogleCompute]\nservice_account = default' > /etc/boto.cfg

COPY config/goog.json /usr/src/config/key_file.json

# setup GCP credentials
ENV GOOGLE_APPLICATION_CREDENTIALS=/usr/src/config/key_file.json
RUN gcloud auth activate-service-account --key-file=/usr/src/config/key_file.json && \
    gcloud --quiet config set compute/zone us-central1-a && \
    gcloud --quiet config set project <my_project_name>
来自python:3.6.11的

WORKDIR/root
#安装google cloud sdk,主要用于使用gsutil导出模型。
运行wget-nv\
https://dl.google.com/dl/cloudsdk/release/google-cloud-sdk.tar.gz && \
mkdir/root/tools&&\
tar xvzf google-cloud-sdk.tar.gz-C/root/tools&&\
rm google-cloud-sdk.tar.gz&&\
/root/tools/googlecloudsdk/install.sh--使用情况报告=false\
--路径更新=false--bash完成=false\
--禁用安装选项&&\
rm-rf/root/.config/*&&\
ln-s/root/.config/config&&\
#删除gcloud创建的备份目录
rm-rf/root/tools/google cloud sdk/.install/.backup
#路径配置
环境路径$PATH:/root/tools/googlecloudsdk/bin
#确保gsutil将使用默认服务帐户
运行echo'[GoogleCompute]\nservice\u account=default'>/etc/boto.cfg
复制config/goog.json/usr/src/config/key\u file.json
#设置GCP凭据
ENV GOOGLE_APPLICATION_CREDENTIALS=/usr/src/config/key_file.json
运行gcloud auth activate服务帐户——key file=/usr/src/config/key\u file.json&&\
gcloud--安静配置集计算/区域us-central1-a&&\
gcloud——安静配置集项目

缺少任何配置?

boto配置覆盖env var定义,并且在调用gsutil命令时不考虑该定义


删除它可以解决问题。

boto配置将覆盖env var定义,并且在调用gsutil命令时不考虑它


删除它可以解决问题。

是否尝试对boto行进行注释?您可能会对此产生混淆。您是否能够尝试删除boto线路以解决问题?@guillaumeblaquiere谢谢!worked@JoseV谢谢你提醒我@托伦。我只是回答,如果其他人有类似的问题,我会帮助他们找到答案。你有试着评论boto这句话吗?您可能会对此产生混淆。您是否能够尝试删除boto线路以解决问题?@guillaumeblaquiere谢谢!worked@JoseV谢谢你提醒我@托伦。我只是回答,如果其他人有类似的问题,我会帮助他们找到答案。