概要
docker-compose.ymlのserviceの1つにenv_fileを指定し、環境変数を設定したが、サービスがbuildするコンテナ内(Dockerfile側)では参照できなかった。
vueのアプリケーションをコンテナ内でnpmを使ってビルドしており、アプリケーション側でprocess.env.VUE_APP_API_ENDPOINTという形でアプリケーションのビルド時に環境変数を参照させたかった。
解決策
docker-compose.ymlで指定するenv_fileやenvironmentといったキーはコンテナのビルド後に参照できるようになるため、それらのキーを利用するだけではコンテナビルド中では参照することができない。
docker-compose.ymlでargsキーを指定し、変数をコンテナに渡すことで解決した。
.env
Dockerfile
docker-compose.yml
参考までにビルド時に環境変数を参照したいアプリケーション側のコードを記載。