docker-composeでDockerコンテナに環境変数を設定するには

Dockerコンテナへ環境変数AWS_ACCESS_KEY_IDを渡す方法を説明します。

ローカルのUbuntu16.04上の話です。docker-composeでDockerコンテナを起動しました。Dockerコンテナから、本番のAWS DynamoDbにアクセスしたい。そのために、Dockerコンテナへ環境変数AWS_ACCESS_KEY_IDを渡したい。

環境変数の設定ファイル

myproject/web.env に、Dockerコンテナで利用したい環境変数を、名前=値の形式で記述します。先頭文字が「#」の行は無視されます。

AWS_ACCESS_KEY_ID=hoge
AWS_SECRET_ACCESS_KEY=hoge

ホスト側の環境変数設定スクリプトを使いまわそうとしたら、exportがあるためなのか、うまくいきませんでした。exportに気づかず、手こずってしまいました。

# NGな例
export AWS_ACCESS_KEY_ID=hoge
export AWS_SECRET_ACCESS_KEY=hogeCode language: PHP (php)

docker-compose.yml

myproject/docker-compose.ymlのservicesの該当箇所に、env_fileと、さきほどのweb.envを記述します。

version: '2'

services:
  web:
    tty: true
    container_name: web.container
    〜省略〜
    env_file:
      - ./web.envCode language: JavaScript (javascript)

Dockerコンテナにログインして確認

docker-composeで起動します。
Dockerコンテナにログインします。
環境変数が設定されていることを、echoで確認します。

$ sudo docker-compose up -d
$ sudo docker exec -it web.container bash
[sudo] taroのパスワード:
[root@b083a171f89f /]# echo $AWS_ACCESS_KEY_ID
hogeCode language: PHP (php)

参考URL

タイトルとURLをコピーしました