2016-09-19 2 views
0

두 개의 마이크로 서비스를 실행 중입니다. demo1과 demo2는 두 개의 컨테이너에서 docker를 사용합니다. 데모 1에서 zuul을 구성했습니다. 나는 demo1에서 demo2로 연결하기를 원합니다. 즉, demo1에서 demo2의 api에 액세스하려고합니다.docker에서 zuul을 사용하여 다른 컨테이너로 라우팅

demo1은 포트 8080에서 실행되고 demo2는 포트 8030에서 실행되며이 "localhost : 8030/zuultest/test"와 같은 api에 액세스하려고합니다. 그러나 라우팅이 작동하지 않습니다. "localhost : 8080/test"와 같은 demo1에 액세스하면 제대로 작동합니다.

다음은 두 용기 사이를 연결하는 고정 표시기 - compose.yml에 링크 옵션을 사용할 수 있습니다 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 구성입니다.

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

그런 다음 zuul에 : 완패 : 홈페이지 구성은 당신이 conatiner 이름, demo2 대신이 IP의의를 사용할 수 있습니다.

0

또한 문제의 포트가 열려 있고 외부 시스템에서도 액세스 할 수 있도록해야합니다. 포트 8080 (기본 열린 포트)에서 원하는 포트 (사용자의 경우 8030)로 트래픽을 라우팅 할 수 있습니다. 명시 적으로 포트를 노출하려면 다음 링크를 참조하십시오. https://github.com/wsargent/docker-cheat-sheet#exposing-ports

관련 문제