ReactJS浏览器应用程序在Docker Composenetworking中看不到东西
我有一个ReactJS项目与自己的Dockerfile,暴露端口3000:3000。
我也有一个PHP项目与自己的Dockerfile,暴露端口80:80。 PHP应用程序还具有MySQL,Redis和Nginx的容器
对于PHP应用程序,我有一个docker-compose文件,为PHP,Nginx,MySQL和Redis创build一个networking( my-net
)进行通信。 不过,我现在希望ReactJS(这是在一个单独的项目中)能够与PHP应用程序进行通信。
我在React项目中添加了docker-compose文件,并将其添加到PHP项目my-net
并将其声明为external
因此它不会尝试创build它。
这似乎工作:从ReactJS容器,我可以ping app
(我的后端服务的名称),它正常工作。 但是,从ReactJS代码,如果我使用类似axios
的尝试,并击中后端API,它不能解决app
或http://app
或任何变化。 它可以访问底层的IP地址,如果我把它replace成axios
。
所以似乎有一些问题的主机名parsing,大概这是在axios
/ JavaScript端。 有什么我失踪或这是不工作的原因?
当JavaScript在浏览器(Docker外部)中运行时,不能使用app
因为只能在Dockernetworking内部(通过embedded式DNS服务器)使用该app
。
要从外部访问您的PHP服务器,请改用localhost和公开的端口(80)。