You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用应用默认凭据在Docker容器运行Python应用时遇OSError

问题:Docker容器中Google Cloud Logging无法自动获取项目信息

错误信息

Python应用本地运行正常,已创建Dockerfile并构建镜像。应用使用Python Google Cloud Logging库,运行镜像时Docker容器日志出现如下错误:

File "/home/apprunner/app/./app/main.py", line 12, in <module>
2022-12-20 15:14:37     client = google.cloud.logging.Client()
2022-12-20 15:14:37   File "/home/apprunner/app/.venv/lib/python3.9/site-packages/google/cloud/logging_v2/client.py", line 122, in __init__
2022-12-20 15:14:37     super(Client, self).__init__(
2022-12-20 15:14:37   File "/home/apprunner/app/.venv/lib/python3.9/site-packages/google/cloud/client/__init__.py", line 320, in __init__
2022-12-20 15:14:37     _ClientProjectMixin.__init__(self, project=project, credentials=credentials)
2022-12-20 15:14:37   File "/home/apprunner/app/.venv/lib/python3.9/site-packages/google/cloud/client/__init__.py", line 271, in __init__
2022-12-20 15:14:37     raise EnvironmentError(
2022-12-20 15:14:37 OSError: Project was not passed and could not be determined from the environment.

容器运行命令

通过以下命令传递应用默认凭据(Application Default Credentials)运行Docker容器:

# 设置shell变量
ADC=~/.config/gcloud/application_default_credentials.json \

docker run \
-d \
-v ${ADC}:/tmp/keys/application_default_credentials.json:ro \
-e GOOGLE_APPLICATION_CREDENTIALS=/tmp/keys/application_default_credentials.json \
IMAGE_NAME

已确认application_default_credentials.json文件存在且${ADC}变量值正确:

$ echo $ADC
/Users/ian/.config/gcloud/application_default_credentials.json

调试过程

堆栈跟踪指向代码中调用Logging库的行:

client = google.cloud.logging.Client()

错误提示需要同时传入project和credentials参数:

_ClientProjectMixin.__init__(self, project=project, credentials=credentials)

疑问:是传递应用默认凭据的方式有问题,还是需要额外传入项目信息?


更新

如果在代码中显式传入project参数,容器可以正常运行:

client = google.cloud.logging.Client(project='my-project')

但不想为本地开发修改代码,且理论上无需此操作,不明白为何无法从ADC中获取项目信息?


内容的提问来源于stack exchange,提问作者ianyoung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 18:40:57