【问题标题】:Set GOOGLE_APPLICATION_CREDENTIALS in Docker在 Docker 中设置 GOOGLE_APPLICATION_CREDENTIALS
【发布时间】:2019-11-29 22:45:09
【问题描述】:

我想使用我的 key.json 文件在我的 docker 容器中设置 GOOGLE_APPLICATION_CREDENTIALS,但我不想将此文件复制到我的容器中。

【问题讨论】:

标签: docker google-cloud-platform dockerfile docker-run


【解决方案1】:

如果您想使用 docker run 设置凭据,您可以使用 --env-file 标志提供文件,或者使用 --env 提供参数

棘手的部分是,因为它在 json 中,你必须 cat json 文件,grep 你要查找的变量,用 = 替换冒号,然后删除括号。工作量很大。

相反,你为什么不直接创建文件,在文件内部使用 key = value 表示法,并为文件提供:

docker run --env-file my_config_file ....

【讨论】:

    【解决方案2】:
     docker run \
       -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/[FILE_NAME].json \
       -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/[FILE_NAME].json:ro \
       gcr.io/[PROJECT_ID]/[IMAGE]
    

    参考:https://cloud.google.com/run/docs/testing/local

    【讨论】:

    • 谢谢。我在找这个。
    • 我们应该在本地准备好 GOOGLE_APPLICATION_CREDENTIALS 吗?我从来没有在我的本地设置 GOOGLE_APPLICATION_CREDENTIALS。你现在知道 -v 中的 'ro' 是什么意思吗?
    • @khusnanadia 你必须通过证书。 ro 表示只读。
    • 另外,您可以在 Dockerfile 中定义环境变量。并让这个命令更短一些
    【解决方案3】:

    对于在当前工作目录中使用密钥文件的任何人:

    docker run \
      -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/[FILE_NAME].json \
      -v $(pwd):/tmp/keys/[FILE_NAME].json:ro \
      gcr.io/[PROJECT_ID]/[IMAGE]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多