2016-07-27 2 views
0

나는 aws의 dockerised 환경에서 마이크로 서비스 등록을 위해 봄 구름 유레카를 사용하고 있습니다.임시 포트가있는 봄 구름 brixton, eureka 및 docker

나는 dockers 임시 포트 매핑을 사용하고 있기 때문에 컨테이너 호스트에 노출 된 포트를 알 수 없습니다. 그것을 극복하기 위해 나는 지정 된 포트에 대해 호스트의 도커 데몬에게 묻는 커스텀 EurekaInstanceConfigBean을 사용하여이를 유레카 등록에 사용할 수 있습니다.

등록이 시작될 때까지 모두 정상적으로 작동합니다. EurekaDiscoveryClientConfiguration에는 사용자 정의 EurekaInstanceConfigBean에 할당 한 외부 포트를 무시하고 컨테이너 내부의 로컬 포트로 다시 설정하는 @EventListener(EmbeddedServletContainerInitializedEvent.class)이 들어 있습니다.

청취자 목적이 server.port=0 인 경우 자동 포트 할당을 지원하지만 내 설정에서 문제가 발생한다고 생각합니다.

질문 : 어떻게 든 EurekaDiscoveryClientConfiguration이 수동으로 설정된 포트를 무시할 수 있습니까? 어떻게 든 내 자신의 EurekaDiscoveryClientConfiguration을 사용할 수 있습니까?

답변

0

호스트 네트워킹을 사용할 수 있으므로 도커 컨테이너는 IP 주소에서 서비스에 액세스 할 수 있도록 호스트의 네트워크 스택을 사용합니다.

나는 docker-compose를 이용하여 이것을 사용했다. 서비스는 모두 역방향 프록시 (내 경우에는 zuul 기반)로 작동하는 가장자리 서비스에도 불구하고 임의의 포트가 있습니다. 이러한 에지 서비스에는 안정적인 포트가 있습니다.

+0

안녕하세요 패트릭, 내 문제는 구성 콩에서 포트를 설정하고 있으므로 유레카 등록 할 수 있습니다. 어쨌든, 나는 이제'EurekaInstanceConfigBean'을'setNonSecurePort'를 무시하고 대체 setter를 드러내는 버전으로 덮어 썼습니다 - 작동하지만 hackish하는 방법을 느낍니다 ... –

관련 문제