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,它不能解决apphttp://app或任何变化。 它可以访问底层的IP地址,如果我把它replace成axios

所以似乎有一些问题的主机名parsing,大概这是在axios / JavaScript端。 有什么我失踪或这是不工作的原因?

当JavaScript在浏览器(Docker外部)中运行时,不能使用app因为只能在Dockernetworking内部(通过embedded式DNS服务器)使用该app

要从外部访问您的PHP服务器,请改用localhost和公开的端口(80)。