首页 > 解决方案 > google.auth.exceptions.DefaultCredentialsError:在 Docker-compose 中找不到文件 /home/technophile/snap/skype/common/xyz.json

问题描述

我有一个用 python 编写的应用程序,我把它放在一个 dockerfile 和 docker-compose.yml 中。独立运行时的python文件执行完美,但是当我使用'sudo docker-compose up'运行它时,它会导致错误:当文件本身存在时找不到文件。这是我的 Docker-compose

version: '3.7'
services:
  project-name:
    build: ./
    environment:
      GOOGLE_APPLICATION_CREDENTIALS: "${GOOGLE_APPLICATION_CREDENTIALS}"
    command: python3 main.py

这是错误:

Traceback (most recent call last):
project-name_1  |   File "main.py", line 9, in <module>
project-name_1  |     client = storage.Client()
project-name_1  |   File "/usr/local/lib/python3.7/site-packages/google/cloud/storage/client.py", line 126, in __init__
project-name_1  |     _http=_http,
project-name_1  |   File "/usr/local/lib/python3.7/site-packages/google/cloud/client.py", line 277, in __init__
project-name_1  |     _ClientProjectMixin.__init__(self, project=project, credentials=credentials)
project-name_1  |   File "/usr/local/lib/python3.7/site-packages/google/cloud/client.py", line 225, in __init__
project-name_1  |     project = self._determine_default(project)
project-name_1  |   File "/usr/local/lib/python3.7/site-packages/google/cloud/client.py", line 244, in _determine_default
project-name_1  |     return _determine_default_project(project)
project-name_1  |   File "/usr/local/lib/python3.7/site-packages/google/cloud/_helpers.py", line 186, in _determine_default_project
project-name_1  |     _, project = google.auth.default()
project-name_1  |   File "/usr/local/lib/python3.7/site-packages/google/auth/_default.py", line 454, in default
project-name_1  |     credentials, project_id = checker()
project-name_1  |   File "/usr/local/lib/python3.7/site-packages/google/auth/_default.py", line 222, in _get_explicit_environ_credentials
project-name_1  |     os.environ[environment_vars.CREDENTIALS]
project-name_1  |   File "/usr/local/lib/python3.7/site-packages/google/auth/_default.py", line 108, in load_credentials_from_file
project-name_1  |     "File {} was not found.".format(filename)
project-name_1  | google.auth.exceptions.DefaultCredentialsError: File /home/technophile/snap/skype/common/xyz.json was not found.

在运行 python 文件之前,我已经导出了这个 xyz.json 文件并且 python 文件运行良好。但是当我尝试使用 docker-compose 运行它时,问题就出现了。我什至创建了环境变量,但这也没有解决。请帮帮我!谢谢

标签: pythondockergoogle-cloud-platformdocker-compose

解决方案


所以我终于找到了解决方法。通过将 Json 文件保存在 Dockerfile 所在的同一文件夹中并向 Dockerfile 添加一个COPY xyz.json xyz.json,它就像一个魅力。


推荐阅读