31
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker 開発環境の中から GCP サービスへの認証を通すかんたんなやり方

Last updated at Posted at 2018-09-14

GCP のサービスへの認証は、特に指定しない限り Application Default Credentials (ADC) が使用されます。

これは環境変数 GOOGLE_APPLICATION_CREDENTIALS に認証鍵の JSON ファイルパスを入れるという方法です。
ここに正しい鍵ファイルを指定しておけば、基本的に GCP の API は特別な設定なしですぐに使うことができます。

コンテナ内で認証を通すには…

しかし、アプリの実行を Docker コンテナの中でやりたい場合どうでしょうか?
コンテナの外側の環境変数はそのまま引き継がれることはないので、コンテナ内では認証が通らなくなってしまいます。

だからといって、認証鍵のファイルは機密情報なのでリポジトリに含めるのは避けたいところです。

image.png

docker-compose で解決する

docker-compose の機能をつかって、外側のマシンにある GOOGLE_APPLICATION_CREDENTIALS をそのままコンテナ内に持っていくことができます!

  • environment: でコンテナ内にも GOOGLE_APPLICATION_CREDENTIALS をつくる(値は適当に /key.json とかでOK)
  • volumes: で外側の GOOGLE_APPLICATION_CREDENTIALS のファイルを内側の /key.json にマウントする
version: '3.6'
services:
  app:
    ...
    environment:
      GOOGLE_APPLICATION_CREDENTIALS: /key.json
    volumes:
      - ${GOOGLE_APPLICATION_CREDENTIALS}:/key.json:ro

image.png

31
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?