Демон Docker (не контейнеры) не может читать переменные окружения - PullRequest
1 голос
/ 23 сентября 2019

Попытка настроить контейнер, работающий за пределами GCP, для входа в Google Cloud Platform (StackDriver).Одним из требований является то, что демон Docker может найти переменную среды GOOGLE_APPLICATION_CREDENTIALS, чтобы он мог проходить аутентификацию.Можно было бы предположить, что следующее будет работать, но это не так:

GOOGLE_APPLICATION_CREDENTIALS=/usr/local/keys/project-1.json docker run --log-driver=gcplogs ...

Что выводит:

ERROR: for api Cannot start service api:
       failed to initialize logging driver: google: could not find default credentials.
       See https://developers.google.com/accounts/docs/application-default-credentials
       for more information.

Не найдено документации о том, как установить это непосредственно на daemon.json, но я не хочу этого, потому что у меня могут быть разные контейнеры, регистрирующие разные проекты GCP.

Я пробовал это на Mac (рабочий стол докера) и Debian.

1 Ответ

2 голосов
/ 24 сентября 2019

Это вопрос, который постоянно возвращается.Здесь происходит то, что переменная окружения GOOGLE_APPLICATION_CREDENTIALS загружается демоном системного докера.Системные демоны не видят переменные среды, установленные при входе пользователя в систему.Вам нужно установить GOOGLE_APPLICATION_CREDENTIALS на системном уровне.

Вот как это сделать в Ubuntu (Systemd):

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

Создать / etc / systemd / system / docker.service.d / env.conf со следующим содержанием:

[Service]
Environment="GOOGLE_APPLICATION_CREDENTIALS=/path/to/file.json"  

Применить изменения.

$ sudo systemctl daemon-reload

После завершения перезапустить демоны docker / containerd

$ sudo systemctl restart containerd
$ sudo systemctl restart docker

Протестировать драйвер gcplogs

docker run --log-driver=gcplogs --log-opt gcp-project="my-project" hello-world
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...