通過上面那篇文章就可以成功搭建開發(fā)環(huán)境唐片。
一 解決多個項目在一個容器中出現(xiàn)的訪問不了的情況:
在開發(fā)過程中遇到了一個問題,在一個容器里運行了兩個項目费韭,項目B想要訪問項目A的接口星持,出現(xiàn)訪問不通的情況抢埋。在容器workspace里用curl http://a.test也訪問不了揪垄。經(jīng)過排查后,找到如下的解決方法饥努。
思路如下:
- 在nginx里配置兩個conf,a.conf和b.conf酷愧。直接把default復(fù)制過去也行,然后改端口和項目地址兩處乍迄,和上篇文章里提到的配置的方式一樣戳葵。然后在a.conf里監(jiān)聽80端口汉匙,在b.conf里監(jiān)聽8009端口。(也可以是其他端口號)
2.修改docker-compose.yml文件戏自。找到nginx的配置伤锚,在ports
處添加一個監(jiān)聽- "8009:8009"
。
### NGINX Server #########################################
nginx:
build:
context: ./nginx
......
ports:
- "${NGINX_HOST_HTTP_PORT}:80"
- "8009:8009"
- "${NGINX_HOST_HTTPS_PORT}:443"
- "${VARNISH_BACKEND_PORT}:81"
depends_on:
- php-fpm
.......
- 在項目B請求項目A的接口地址替換成主機ip訪問屯援。例如原來的接口是:http://a.test/api/test。現(xiàn)在換成:http://179.32.11.92/api/test弯淘。
此處的179.32.11.92這個ip地址吉懊,是查看自己的主機的ip地址。例如主機是mac借嗽,直接在終端用ifconfig就可以查看到。
4.在主機配置/etc/hosts文件浆竭。添加
127.0.0.1 a.test
127.0.0.1 b.test
5.訪問A項目,打開瀏覽器輸入地址:http://a.test
兆蕉。訪問B項目,打開瀏覽器輸入地址:http://b.test:8009
易稠。