docker-compose/dockerで使える.envファイルを、docker-compose/docker以外からも使えるようにしたい。
ちょっとしたスクリプトの実行時に source .env
すれば環境変数が設定されるような体験がほしい。
が、実際には一工夫いる。
dockerの .env ファイルは K=V
という形式を厳密に守らないといけない。
ので export EK=EV
みたいに書くとinvalidとみなされてdocker-compose/docker実行時に正しく設定されない。
一方、.envファイルとしてvalidなフォーマットだと export
がないので source
しても実行時のプロセスで環境変数は設定されない。
ので、けっきょくこうした:
|sh| eval "$(cat .env | ruby -anlpe '$ = %|export | + $')" ||<