2016-07-27 73 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 ... –

相关问题