首页 > 解决方案 > 无法从文件中读取 GCS 凭据

问题描述

我已将我的 Google Cloud Platform 凭据文件作为卷安装在 docker 容器中,并使用 docker-compose 从该文件创建 GOOGLE_APPLICATION_CREDENTIALS 环境变量。当我进入 docker 容器时,该文件就在那里并且它是可读的并且内容是正确的,但是当我检查环境变量的内容时,这就是返回的内容:

docker exec -it -u celery container_name sh
/opt/ori $ $GOOGLE_APPLICATION_CREDENTIALS
/opt/ori/application_default_credentials.json: line 2: type:: not found
/opt/ori/application_default_credentials.json: line 3: project_id:: not found
/opt/ori/application_default_credentials.json: line 4: private_key_id:: not found
/opt/ori/application_default_credentials.json: line 5: private_key:: not found
/opt/ori/application_default_credentials.json: line 6: client_email:: not found
/opt/ori/application_default_credentials.json: line 7: client_id:: not found
/opt/ori/application_default_credentials.json: line 8: auth_uri:: not found
/opt/ori/application_default_credentials.json: line 9: token_uri:: not found
/opt/ori/application_default_credentials.json: line 10: auth_provider_x509_cert_url:: not found
/opt/ori/application_default_credentials.json: line 11: client_x509_cert_url:: not found

显然它正在部分读取 JSON 文件,因为它提取了键,但为什么找不到值?

标签: google-cloud-platform

解决方案


此语句/opt/ori $ $GOOGLE_APPLICATION_CREDENTIALS将凭证文件视为可执行文件并尝试将其作为脚本执行。

此行/opt/ori/application_default_credentials.json: line 2: type:: not found显示操作系统找不到type::要执行的程序。


推荐阅读