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がコンテナ内に引き継がれていることを確認できる。
\第一線のプログラマーの行動原理を学べる!/
