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.

私は何が欠けていますか?私は何を間違っていますか?

資格情報ファイルが機能し、その場所にあることは確かです。アプリ内で rubygoogle/cloud​​ 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 に答える