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=hoge

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.env

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

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

$ sudo docker-compose up -d $ sudo docker exec -it web.container bash [sudo] taroのパスワードスワード# echo $AWS_ACCESS_KEY_ID hoge

参考URL

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