dockerの.envファイルむずかしい

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 | + $')" ||<