Драйвер Google Cloud Logging для Docker

Я не могу аутентифицировать облачный драйвер Google gcplogs для Docker, несмотря на то, что я установил env var GOOGLE_APPLICATION_CREDENTIALS на путь / файл, где находятся учетные данные JSON моей учетной записи службы. Сообщение об ошибке следующее:

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-ce v18.03
  • docker-compose v1.21.0
  • Ubuntu 17.10

Ну, очевидно, демону нужна переменная env в конфигурации systemd. Итак, это решено

Layo 23.04.2018 18:14
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
6
1
1 753
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
google.DefaultTokenSource: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.

У меня была та же проблема, что и выше, когда я запускал службы докеров с драйвером ведения журнала gcplogs.

Это мое решение проблемы:

На хост-машине:

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"

Перезапустите службу докеров:

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/

награждая вас за подробное объяснение решения, которое я нашел сам.

Layo 16.07.2018 15:50

Есть идеи, как это сделать с помощью Docker для Mac?

j0hnm4r5 27.11.2018 20:49

Другие вопросы по теме