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
Code 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.env
Code 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
hoge
Code language: PHP (php)
参考URL