2016-07-27 84 views
0

我使用春天雲尤里卡微碼服務註冊碼頭環境上的aws。春季雲布里克斯頓,尤里卡和碼頭與短暫端口

因爲我使用docker短暫端口映射容器主機上公開的端口是未知的。爲了克服這個問題,我有一個自定義的EurekaInstanceConfigBean,要求docker守護進程在主機上分配端口,這樣我就可以使用它來註冊尤里卡。

這一切都正常工作,直到註冊開始。 EurekaDiscoveryClientConfiguration包含一個@EventListener(EmbeddedServletContainerInitializedEvent.class),它覆蓋我在自定義EurekaInstanceConfigBean中分配的外部端口,並將其設置回容器內的本地端口。

我認爲聽衆的目的是爲了支持在server.port=0的情況下的自動端口分配,但在我的設置它是破壞的東西。

問題是:我能以某種方式停止EurekaDiscoveryClientConfiguration覆蓋我手動設置的端口嗎?我能以某種方式使用我自己的EurekaDiscoveryClientConfiguration嗎?

回答

0

您可以使用主機網絡,因此docker容器使用主機的網絡堆棧,使得該服務可以訪問其IP地址。

我通過使用docker-compose來使用它。這些服務都有隨機端口,儘管邊緣服務作爲反向代理(在我的情況下是基於zuul的)。這些邊緣服務具有穩定的端口。

+0

嗨帕特里克,我的問題是在配置bean中設置端口,所以我可以註冊尤里卡。無論哪種方式,我現在用一個忽略'setNonSecurePort'的版本覆蓋了'EurekaInstanceConfigBean',並公開了一個替代的setter - 這種方法的工作原理,但感覺方式hackish ... –

相關問題