質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1270閲覧

docker-compose.ymlで環境変数でgcpのサービスアカウントキーの値を設定したい。

sequelanonymous

総合スコア123

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2019/01/09 23:28

編集2019/01/09 23:54

やりたいことは、下記のローカルの環境変数に設定されたkeyの中身をコンテナ内に引き渡したいです。
その後、デコードされ、.jsonファイルにコピーされる処理をしたいです。

docker-compose upで下記のコマンドがdocker-compose.yml内にあるためにappが上手く立ち上がらない状況です

command: echo $GCLOUD_KEY | base64 --decode > ${HOME}/gcs_key.json

ご教示頂けますと幸いです。

下記のURLの内容は試行済みです。
https://qiita.com/kimullaa/items/f556431b8103e686f356

ローカルPC

bash-3.2$ env GCLOUD_KEY=エンコードされたkeyの中身

docker-compose.yml

version: "3" services: app: build: ./ volumes: - ~/local/xxx/xxx:/xxx/log/ ports: - "3031:3031" links: - mysql:mysql environment: TZ: "Asia/Tokyo" DEBUG: 1 command: echo $GCLOUD_KEY | base64 --decode > ${HOME}/gcs_key.json nginx: build: ./nginx/local/ volumes: - ./nginx/local/nginx.conf:/etc/nginx/nginx.conf links: - uwsgi ports: - "80:80" environment: TZ: "Asia/Tokyo" mysql: image: mysql:5.7 volumes: - ~/local/xxx/xxx:/xxx/log/ ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: password MYSQL_USER: test MYSQL_PASSWORD: test MYSQL_DATABASE: test_db

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

commandで実行する内容とappを分けて、volumesでgcs_key.jsonを配置する場所を共有すれば良いのでは無いでしょうか。

ただ、ホスト側のディレクトリを介して共有する必要があったりするので、
環境変数としてそのままappイメージに渡して、appイメージ側でrunされた時に処理するようにするのが一番良さそうですが。

投稿2019/01/10 01:39

t_obara

総合スコア5488

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sequelanonymous

2019/01/11 02:10

ありがとうございます! > volumesでgcs_key.jsonを配置する場所を共有すれば良いのでは無いでしょうか。 で解決しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問