2016-09-19 112 views
0

我正在兩個使用docker的容器中運行兩個微服務,分別爲demo1和demo2。我已經在demo1中配置了zuul。我想從demo1路由​​到demo2,也就是說,我想從demo1訪問demo2中的api。在docker中使用zuul路由到其他容器

demo1在端口8080上運行,demo2在端口8030上運行,我想像這樣訪問api - 「localhost:8030/zuultest/test」。但路由不起作用。如果我像訪問「localhost:8080/test」那樣訪問demo1,它工作正常。

這是我在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

zuul配置可以使用鏈接選項,在泊塢窗,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

相關問題