Dockerized Spring boot和Zuul

时间:2018-06-04 07:53:52

标签: spring docker spring-boot docker-compose netflix-zuul

我遇到麻烦让Zuul使用dockerized Spring启动应用程序。 似乎Zuul无法将请求代理到目标应用程序( gis_import_export ),即使它已启动并正在运行。

基于我的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启动应用似乎没有得到代理。 顺便说一下,如果zuul本身没有通过Docker部署,那么如果通过8888端口和Zuul访问,则dockerized Spring启动应用程序按预期工作。

在Zuul docker容器内运行ping / telnet到dockerized spring boot应用程序按预期工作,因此名称正在正确解析。

想法?

谢谢,FB

1 个答案:

答案 0 :(得分:0)

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

当然,如果为每个容器指定hostname参数

,那将会很好