【发布时间】:2019-12-10 01:51:29
【问题描述】:
我正在尝试使用使用某些 GCP 服务的应用程序运行 docker 容器。
我已经创建并下载了一个服务帐号json密钥,运行时可以在docker外运行应用程序
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/project-credentials-123.json"
在运行应用程序之前。
但是,当我在 docker 中运行应用程序时,GCP 客户端库找不到默认访问密钥。
我正在使用的 docker run 命令如下所示:
docker run -p 8501:8501 -e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/project-credentials-123.json -v $GOOGLE_APPLICATION_CREDENTIALS:/tmp/keys/project-credentials-123.json:ro 571a38aaaf15 streamlit run src/app/app.py
571a38aaaf15 是 docker 镜像 ID。
请注意,我将project-credentials-123.json 复制到/tmp/keys/ 以便更好地关注https://cloud.google.com/run/docs/testing/local
【问题讨论】:
-
如果你启动你的容器然后在里面运行一个shall,你能在容器内的shell提示符下手动运行你的命令吗?
-
实际错误的症状/信息是什么?
-
我正在运行一个 python 网络应用程序,所以唯一的信息是无法检测到 GOOGLE_APPLICATION_CREDENTIALS。主要是我想和同事共享一个运行命令,所以我不希望他们交互式地进入容器来设置里面的路径。
-
您好...为了调试,您能否设置容器的运行实例,然后进入容器内部的外壳以进行测试。然后,手动运行失败的命令,反馈报错的详细描述?
-
谢谢@Kolban,这激发了我在下面分享的答案(它似乎有效)。有什么问题吗?
标签: docker google-cloud-platform