Spring 对接弹簧靴和Zuul

Spring 对接弹簧靴和Zuul,spring,docker,spring-boot,docker-compose,netflix-zuul,Spring,Docker,Spring Boot,Docker Compose,Netflix Zuul,我很难让Zuul使用一个固定的Spring boot应用程序。 Zuul似乎无法将请求代理到目标应用程序(gis\u导入\u导出),即使它已启动并正在运行 我的基于Zuul的Spring应用程序配置: spring: banner: location: classpath:banner.txt zuul: debug: request: true routes: ie: url: http://gis_import_export:8080

我很难让Zuul使用一个固定的Spring boot应用程序。 Zuul似乎无法将请求代理到目标应用程序(gis\u导入\u导出),即使它已启动并正在运行

我的基于Zuul的Spring应用程序配置:

spring:
  banner:
    location: classpath:banner.txt
zuul:
  debug:
    request: true
  routes:
    ie:
      url: http://gis_import_export:8080
    geoserver:
      url: http://geoserver:8080
    geonetwork:
      url: http://geonetwork:8080

ribbon:
  eureka:
    enabled: false
和我的docker-compose.yml文件:

version: "3"

services:
  geoserver:
    image: kartoza/geoserver
  geonetwork:
    image: geonetwork
  postgres:
    image: postgres
    environment:
      - POSTGRES_DB=xxx
      - POSTGRES_PASSWORD=xxx
      - POSTGRES_USER=xxx
  gis_import_export:
    image: gis_import_export:develop
    ports:
      - 8888:8080
  zuul:
    image: gis_api_gateway:develop
    ports:
      - 8080:8080
我能够通过Zuul服务公开端口正确代理geonetwork/geoserver,但我一直坚持使用Spring boot应用程序,似乎无法代理。 顺便说一句,如果通过8888端口访问,并且如果Zuul本身没有通过Docker部署,那么停靠的Spring boot应用程序可以按照预期工作

在Zuul docker容器中运行ping/telnet到Docked spring boot应用程序的工作原理与预期一致,因此名称的解析是正确的

想法


谢谢,FB

您的服务在不同的docker网络中运行。 您必须在两个网络文件中指定相同的网络


当然,如果您为每个容器指定hostname参数也会很好

很抱歉迟到了,只需将hostname属性设置为gis\u import\u export service就可以了。这对我来说仍然无法解释,因为容器能够使用dockerfile中定义的名称相互连接,所以它们位于相同的默认网络中。顺便提一下谢谢你的提示。