0

現在、デジタル海洋でドッカーを作成しており、gcplogs(Google Cloud Loggingドライバ)を試してみたいと考えています。私が理解しているように、私はGoogle Application Default Credentialsを設定する必要があります.jsonキーファイルをダウンロードし、それを指すようにGOOGLE_APPLICATION_CREDENTIALSを設定します。dockerでデジタル海上のドッキングgcplogs(Google Cloud Loggingドライバ)を使用しています

これは私が(それが動作せずに)これを設定している方法です

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 gemを使ってアプリ内で使用するからです。私はまた、そのruby-gemを使って正常にログすることができますが、これをドッカーコンテナで動作させたいので、他の非rubyプロジェクトで再利用することができます。

答えて

2

ロッキングドライバは、ドッカーデーモンによって実行されます。これらの資格情報をデーモン環境に提供する必要があります。現在行っていることは、発見したとおりに動作しないコンテナにそれらを提供することです。

これらをデーモンに提供するには、Digital Oceanホストでjsonファイルを最初にコピーまたはダウンロードする必要があります。次に

export GOOGLE_APPLICATION_CREDENTIALS=... 
# run the docker daemon 
docker daemon .... 
+0

ありがとうございます!しかし、ロガーは役に立たない。私が理解しているように、ドッカーの要点は、使い捨てのサーバーとコンテナを持っていて、即座に起動し、設定のどれかを考えないようにすることです。これをドッキングマシンに組み込む方法はありますか?それともコンテナにも影響を及ぼしていますか? – Automatico

+0

docker-composeはコンテナを設定するためのものです。 Composeファイルから使用するドライバを設定しますが、Docker Engineはそのドライバの使用方法を知る必要があります。私はそれがロガーを無駄にするとは思わない、それはあなたがエンジンを適切に最初に構成しなければならないということを意味するだけである。 – dnephin

+0

「役に立たない」という言葉は私の誇張であるかもしれませんが、使いやすさは低下します。実際には、コンテナごとにロガーを設定するので、コンテナごとに設定できるようにすることは意味があります。 – Automatico

関連する問題