尤里卡服务器不能用于传统的战争部署在Docker中

尤里卡启动gradle项目在这里 。 当我运行bootRun ,工作正常,尤里卡绑定到本地主机上的端口8080,可以从浏览器访问,大家都很开心。 当作为Docker容器启动时,应用程序似乎没有任何exception,但我无法从8080端口的浏览器访问Eureka控制台。我得到了404。

我知道在Docker上有几个Eureka的例子,但是没有一个使用gradle和传统的部署。

命令我用来启动一个容器: docker run -it -p 8080:8080 -e DOCKER_HOST="$(echo $DOCKER_HOST | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}')" xxx

Docker引擎1.9与Mac上的Docker机器。

日志片段

 Adding replica node: http://192.168.99.107:8080/eureka/ 2015-12-26 03:35:42.959 INFO 7 --- [ost-startStop-1] najavaee.discovery.DiscoveryServer : Started DiscoveryServer in 8.167 seconds (JVM running for 12.804) 

application.yml

 server: port: ${PORT:8080} eureka: instance: hostname: ${DOCKER_HOST:localhost} preferIpAddress: true client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ 

Dockerfile

 FROM abhijitsarkar/docker:tomcat8 ADD build/libs/*.war $CATALINA_HOME/webapps/discovery.war CMD ["supervisord", "-c", "/etc/supervisord.conf"] 

DiscoveryServer

 @SpringBootApplication @EnableEurekaServer public class DiscoveryServer extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(DiscoveryServer.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(DiscoveryServer.class); } } 

看起来应用程序正在运行。 你的Dockerfile复制战争到“discovery.war”,所以我期望它显示/发现(但你没有真正说你尝试什么,什么不工作)。