我正在尝试使用docker-compose文件运行全栈应用程序。但是,后端(SpringBoot)和前端(ReactJs)容器无法使用服务名称相互通信。
我知道容器可以在用户定义的网桥网络中进行通信。我的后端使用db:5432地址连接到数据库。 但是,当我尝试从前端向后端发出get请求时: 示例:http://back-end:5055/getLogs?page=0
它不起作用-> net :: ERR_NAME_NOT_RESOLVED
因此,前端无法向后端发出任何请求。
如果我从后端公开端口并使用http://localhost:5055/getLogs?page=0,则一切正常。 但是,我只想向用户公开前端端口,而我希望隔离其他端口(后端/ DB)。
如何在这两者之间建立通信?
docker-compose文件
services:
db:
... env vars
networks:
- my-net
back-end:
image: back/preproduction:0.0.1
networks:
- my-net
front-end:
image: front/preproduction:0.0.1
ports:
- "80:3055"
networks:
- my-net
... volumes
networks:
my-net:
driver: bridge