【问题标题】:Firestore authorization for Google Compute engine for app on a docker containerDocker 容器上应用程序的 Google Compute 引擎的 Firestore 授权
【发布时间】:2020-05-19 06:27:03
【问题描述】:

我通过 Docker 容器在 Google 计算实例上部署了一个 Node.js 应用程序。有没有推荐的方法将 GOOGLE_APPLICATION_CREDENTIALS 传递给 docker 容器?

我看到文档指出 GCE 具有应用程序默认凭据 (ADC),但这些在 docker 容器中不可用。 (https://cloud.google.com/docs/authentication/production)

我对 docker 和 GCP 有点陌生,因此我们将不胜感激。

谢谢!

【问题讨论】:

    标签: firebase docker google-cloud-firestore google-compute-engine


    【解决方案1】:

    所以,我可以在哪里找到这个documentation,您可以将您的 GOOGLE_APPLICATION_CREDENTIALS 注入 docker 以便在本地测试云运行,我知道这不是云运行,但我相信相同的命令可以用于为了将您的凭据注入容器。

    据我所知,很多时候社区需要步骤和命令,因为链接可能会更改,信息也可能会更改,我将复制注入凭据所需的步骤。

    1. 有关说明,请参阅Getting Started with Authentication 关于生成、检索和配置您的服务帐户 凭据。

    2. 以下 Docker 运行标志注入凭据和 从本地系统配置到本地容器:

      • 使用 --volume (-v) 标志将凭证文件注入 容器(假设您已经设置了 您机器上的 GOOGLE_APPLICATION_CREDENTIALS 环境变量):

    -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro

    • 使用 --environment (-e) 标志设置 容器内的 GOOGLE_APPLICATION_CREDENTIALS 变量:

    -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json

    或者,使用这个完全配置的 Docker 运行命令:

    PORT=8080 && docker run \
     -p 9090:${PORT} \
     -e PORT=${PORT} \
     -e K_SERVICE=dev \
     -e K_CONFIGURATION=dev \
     -e K_REVISION=dev-00001 \
     -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/FILE_NAME.json \
     -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/FILE_NAME.json:ro \ gcr.io/PROJECT_ID/IMAGE
    

    注意路径

    /tmp/keys/FILE_NAME.json

    上例中显示的位置是放置您的 容器内的凭据。但是,其他目录位置 也将工作。关键的要求是 GOOGLE_APPLICATION_CREDENTIALS 环境变量必须与 在容器内绑定挂载位置。

    希望这对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      • 2019-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多