djt*_*djt 3 docker reactjs axios
我有一个带有自己的 Dockerfile 的 ReactJS 项目,暴露了端口 3000:3000。
我还有一个带有自己的 Dockerfile 的 PHP 项目,暴露了端口 80:80。PHP 应用程序还包含用于 MySQL、Redis 和 Nginx 的容器
对于 PHP 应用程序,我有一个 docker-compose 文件,该文件my-net为 PHP、Nginx、MySQL 和 Redis创建了一个网络 ( ) 以进行通信。但是,我现在希望 ReactJS(在一个单独的项目中)能够与 PHP 应用程序进行通信。
我在 React 项目中添加了一个 docker-compose 文件,并将它从 PHP 项目添加到网络中,my-net并声明为external这样它就不会尝试创建它。
这似乎有效:从 ReactJS 容器,我可以 ping app(我的后端服务的名称)并且它正常工作。不过,从ReactJS代码,如果我使用类似axios尝试,并击中了后端API,它并不能解决app或http://app或任何变化。但是,如果我将其替换为axios.
所以主机名解析似乎存在一些问题,大概这是在axios/ JavaScript 端。有什么我遗漏的或不起作用的原因吗?
当 JavaScript 在浏览器(Docker 之外)中运行时,您无法使用,app因为它仅在 Docker 网络内部可用(通过嵌入式 DNS 服务器)。
要从外部访问 PHP 服务器,请改用 localhost 和暴露的端口 (80)。
| 归档时间: |
|
| 查看次数: |
1077 次 |
| 最近记录: |