【问题标题】:The Google Cloud Logging driver for Docker用于 Docker 的 Google Cloud Logging 驱动程序
【发布时间】:2018-10-03 15:00:09
【问题描述】:

尽管我已将环境变量 GOOGLE_APPLICATION_CREDENTIALS 设置为我的服务帐户的 JSON 凭据所在的路径/文件,但我无法为 Docker 验证谷歌云驱动程序 gcplogs。错误信息如下:

ERROR: for oncrm_oncrm_1  Cannot start service oncrm: 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.

我在 docker-compose 上使用的配置是:

logging:
      driver: gcplogs
      options:
        gcp-project: "gcloud-project-id"
        gcp-meta-name: "prod-helpsec-01"
        labels: "app"

我尝试运行 docker 容器的环境是:

  • docker-ce v18.03
  • docker-compose v1.21.0
  • Ubuntu 17.10

【问题讨论】:

  • 好吧,显然守护进程需要 systemd 配置中的 env var。这样就解决了

标签: docker docker-compose google-cloud-logging


【解决方案1】:
google.DefaultTokenSource: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.

当我使用 gcplogs 日志记录驱动程序运行 docker 服务时,我遇到了与上述相同的问题。

这是我的问题解决方案:

在主机上:

sudo mkdir -p /etc/systemd/system/docker.service.d

创建文件:

/etc/systemd/system/docker.service.d/docker-service-override.conf

包含以下内容:

[Service]
Environment="GOOGLE_APPLICATION_CREDENTIALS=/root/gcp-logging-service-cridentials.json"

重启docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

有用的链接:

  1. https://cloud.google.com/docs/authentication/getting-started
  2. https://docs.docker.com/config/daemon/systemd
  3. https://docs.docker.com/config/containers/logging/gcplogs/

【讨论】:

  • 奖励您对我自己找到的解决方案的详细解释。
  • 知道如何使用 Docker for Mac 做到这一点吗?
猜你喜欢
  • 2019-07-21
  • 2019-10-24
  • 2021-11-14
  • 2019-09-10
  • 1970-01-01
  • 2021-05-27
  • 2018-05-25
  • 1970-01-01
  • 2016-12-19
相关资源
最近更新 更多