首页 > 解决方案 > UI 层和 Rest 服务之间的通信无法通过 dockercompose 正常进行

问题描述

前端层(React)和后端层(Spring boot:Rest API)之间的通信没有通过 docker compose 正常进行

version: "3"

services:
 backend-service:
    build:./backend
    ports:
      - 8080:8080
   

    ui-service:
        build: ./ui
        ports:
          - 8085:8085

因此,当我从前端层调用 https://localhost:8080 时,它工作正常。而当我从前端层调用 https://backend-service:8080 时,它给了我 net::ERR_NAME_NOT_RESOLVED

这有点不寻常。想知道我做错了什么还是设计的?

标签: spring-bootdockerdocker-compose

解决方案


来自Compose 中的网络

默认情况下,Compose 会为您的应用程序设置一个网络。服务的每个容器都加入默认网络,并且可以被该网络上的其他容器访问,并且可以通过与容器名称相同的主机名被它们发现。

您可以尝试包括该container_name字段。更多关于它在这里

version: "3"

services:
 backend-service:
    build:./backend
    container_name: backend-service
    ports:
      - 8080:8080
   

    ui-service:        
        build: ./ui
        ports:
          - 8085:8085

如果您不指定container_name您的容器可能会被命名backend-service-1或类似名称。您可以检查容器s name using docker ps` 或查看撰写日志。


推荐阅读