通過上面那篇文章就可以成功搭建開發(fā)環(huán)境。
一 解決多個(gè)項(xiàng)目在一個(gè)容器中出現(xiàn)的訪問不了的情況:
在開發(fā)過程中遇到了一個(gè)問題,在一個(gè)容器里運(yùn)行了兩個(gè)項(xiàng)目,項(xiàng)目B想要訪問項(xiàng)目A的接口,出現(xiàn)訪問不通的情況。在容器workspace里用curl http://a.test也訪問不了。經(jīng)過排查后,找到如下的解決方法。
思路如下:
- 在nginx里配置兩個(gè)conf,a.conf和b.conf。直接把default復(fù)制過去也行,然后改端口和項(xiàng)目地址兩處,和上篇文章里提到的配置的方式一樣。然后在a.conf里監(jiān)聽80端口,在b.conf里監(jiān)聽8009端口。(也可以是其他端口號(hào))
2.修改docker-compose.yml文件。找到nginx的配置,在ports處添加一個(gè)監(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
.......
- 在項(xiàng)目B請(qǐng)求項(xiàng)目A的接口地址替換成主機(jī)ip訪問。例如原來(lái)的接口是:http://a.test/api/test?,F(xiàn)在換成:http://179.32.11.92/api/test。
此處的179.32.11.92這個(gè)ip地址,是查看自己的主機(jī)的ip地址。例如主機(jī)是mac,直接在終端用ifconfig就可以查看到。
4.在主機(jī)配置/etc/hosts文件。添加
127.0.0.1 a.test
127.0.0.1 b.test
5.訪問A項(xiàng)目,打開瀏覽器輸入地址:http://a.test。訪問B項(xiàng)目,打開瀏覽器輸入地址:http://b.test:8009。