docker composeでホストの環境変数を引き継ぎたい
docker-compose.yml
をバージョン管理していてパスワードやトークンなどの機密情報をコンテナに渡したい場合、
docker-compose.yml
に直接書くのを避けたい。
アプリ開発などでは環境変数を参照するようにして、バージョン管理されているファイルには機密情報を書かないようにする。
これと同様にdocker-compose.yml
に直接書かず、ホストの環境変数を参照するようにしたい。
環境変数をコンテナに引き継ぐ
docker-compose.yml
のenvironment
に環境変数名だけ書くと、ホストの環境変数をコンテナに引き継げる。
services:
linux:
image: debian:bullseye-slim
command: tail -f /dev/null
environment:
- FOO
- BAR
上記ではホストの環境変数FOO
とBAR
をコンテナに引き継ぐ。
動作確認
例えば以下のようにFOO
とBAR
を設定しておく。
$ export FOO=foo
$ export BAR=bar
この状態でコンテナを起動する。
$ docker-compose up -d
コンテナ内に入って環境変数を確認する。
$ docker-compose exec linux env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=70a7a67d6c61
TERM=xterm
FOO=foo
BAR=bar
HOME=/root
環境変数FOO
とBAR
がコンテナ内に引き継がれていることを確認できる。
\第一線のプログラマーの行動原理を学べる!/