集装箱内部沟通

时间:2019-07-11 09:36:41

标签: reactjs spring-boot docker docker-compose

我正在尝试使用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 

0 个答案:

没有答案