在使用 laradock
當作開發環境的時候,遇到一個問題。不同專案在 docker
內 使用 API 互相訪問的時候,因為 php 程式碼實際是在 php-fpm
容器內執行,通過 API 方式呼叫另一個專案的時候,會走到 nginx
容器,就存在跨容器呼叫的問題。一開始的解決方法是在 php-fpm
容器的配置項 extra_hosts
中新增專案的 host 指定 nginx 容器 IP test.loc:172.18.0.3
會存在一個問題,nginx 重啟後可能會存在 IP 變化的問題,這樣就需要修改 php-fpm 的 extra_hosts 配置,再重啟 php-fpm 容器,比較麻煩。
查了一下,有另一方案,在 nginx 的配置項的 networks
的網路配置下面新增 host 配置就行。類似這樣
networks:
frontend:
aliases:
- test.loc
即可解決。
可新增多行 host。
原理沒細研究,差不多是把 frontend
網路配置了多個別名,這樣在不同的容器內就都可以訪問 nginx 的網路了。
本作品採用《CC 協議》,轉載必須註明作者和本文連結