docker
docker-compose

Docker環境からローカル環境にアクセスする方法

WebアプリケーションはDocker(docker-compose)で構築しており、ローカル環境のAPIにアクセスしたい場合の方法です。

Docker for Macを利用している想定で説明をします。

例えばAPIをポート3001で立ち上げた場合、http://localhost:3001とDocker内で設定しているとうまく接続できません。

http://docker.for.mac.localhost:3001 と指定するとうまく接続できます。

docker.for.mac.localhost はDokcer for Macのver17.06から推奨されているDNSです。
ver18.03からはdocker.for.mac.localhost の代わりにhost.docker.internalを利用することが推奨されています。

なお、APIは127.0.0.1にbindすることでDockerからでも接続できるようになります。

参考
https://docs.docker.com/v17.09/docker-for-mac/networking
https://docs.docker.com/docker-for-mac/networking

by @nishina555