2016-09-19 4 views
0

Я запускаю два микросервиса, которые говорят demo1 и demo2 в двух контейнерах, используя докер. Я настроил zuul в demo1. Я хочу перейти от demo1 к demo2, то есть, я хочу получить доступ к api в demo2 из demo1.Маршрутизация в другие контейнеры с использованием zuul in docker

demo1 работает на порту 8080 и demo2 на порту 8030, и я хочу получить доступ к api, как это, «localhost: 8030/zuultest/test». Но маршрутизация не работает. Он отлично работает, если я получаю доступ к демо-версии, например «localhost: 8080/test».

Вот мой Zuul конфигурации в application.yml-

server: 
    port: 8030 

#TODO: figure out why I need this here and in bootstrap.yml 
spring: 
    application: 
    name: zuul server 

endpoints: 
    restart: 
    enabled: true 
    shutdown: 
    enabled: true 
    health: 
    sensitive: false 

zuul: 
    routes: 
    zuultest: 
     url: http://localhost:8080 
     stripPrefix: false 

ribbon: 
    eureka: 
    enabled: false 

ответ

0

вы можете использовать ссылки опции в Докер-compose.yml связать между двумя контейнерами.

demo1: 
    image: <demo1 image name> 
    links: 
    - demo2 
demo2: 
    image: <demo2 image name> 

Тогда в Zuul: раутов: конфигурация URL можно использовать имя conatiner, demo2 вместо его IP.

0

вам также необходимо убедиться, что рассматриваемые порты открыты и доступны с внешней машины. еще лучше вы можете перенаправить трафик с порта 8080 (порт по умолчанию открыт) на нужный порт, 8030 в вашем случае. Для явного разоблачения порта см. Ссылку: https://github.com/wsargent/docker-cheat-sheet#exposing-ports

 Смежные вопросы

  • Нет связанных вопросов^_^