0

我目前已经在数字海洋上设置了 docker compose,并想尝试 gcplogs(Google Cloud Logging 驱动程序)。据我了解,我需要通过下载 json 密钥文件并设置为指向它来设置我的Google 应用程序默认凭据。GOOGLE_APPLICATION_CREDENTIALS

这就是我设置它的方式(没有它的工作)

version: "2"
services:
  containername: 
    build: /whatever/containername
    environment:
      - GOOGLE_APPLICATION_CREDENTIALS=/usr/src/app/project-12349aba.json
    logging:
      driver: gcplogs
      options:
        env: test
        gcp-project: my-project-name

这给了我以下错误:

ERROR: for containername  Failed to initialize logging driver: google.DefaultTokenSource: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.

我错过了什么?我究竟做错了什么?

我很肯定凭据文件可以正常工作并且位于该位置,因为我在应用程序中使用它google/cloud并成功使用了 ruby​​ gem。我也能够使用该 ruby​​-gem 成功登录,但我真的很想让它在 docker 容器上运行,以便我可以在其他非 ruby​​ 项目中重新使用它。

4

1 回答 1

2

日志驱动程序由docker 守护进程而不是容器运行。您需要将这些凭据提供给守护程序环境,您当前正在做的是将它们提供给容器,正如您所发现的那样,这不起作用。

要将它们提供给守护程序,您需要首先在 Digital Ocean 主机上复制或下载 json 文件。然后

export GOOGLE_APPLICATION_CREDENTIALS=...
# run the docker daemon
docker daemon ....
于 2016-09-17T15:51:45.767 回答