最近のGithubリポジトリは、両方まとめて作ってる人多いと思うんですが
Repo
┣ frontend
┗ backend
昔は Javascriptの Repo
とサーバーサイドの Repo
は
別々に作ってましたよね?
で、コンテナを立てる時に、Repo
が別になってると
別々のネットワークで立ち上がるじゃないですか?
Backend
http://localhost:8080
Frontend
http://localhost:8081
別々のコンテナ起動した時 fetch
しようかな〜
って思う時に通信できないですよね。
失敗例
const res = fetch('http://localhost:8080/get-data')
多分 504 gateway timeout
になって
「あれ〜通信できないな〜APIが止まってるのかな〜?」みたいに
思うかもですが、実はコンテナの中で閉じた通信をしてるっていう。
解決策
http://host.docker.internal:8080
ローカルの Docker Desktop
には、共通の localhost
ネットワークがある。
これを使えば network
の設定書かなくても通信できます。