2015-12-26 2 views
0

Проект эвакуационной градирни here. Работает нормально, когда я запускаю bootRun, Эврика привязывается к порту 8080 на локальном хосте, доступном из браузера, все счастливы. При запуске в качестве контейнера Docker приложение, похоже, запускается без каких-либо исключений, но я не могу получить доступ к консоли Eureka из браузера на порту 8080. Я получаю 404.Сервер Eureka недоступен для развертывания традиционной войны В Докере

Я знаю, что есть несколько примеров Eureka on Docker но никто не использует град и традиционное развертывание.

Command я использую, чтобы начать контейнер: 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.

Вход Отрывок:

Adding replica node: http://192.168.99.107:8080/eureka/ 
2015-12-26 03:35:42.959 INFO 7 --- [ost-startStop-1] n.a.javaee.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); 
    } 
} 

ответ

2

Похоже, приложение работает. Ваш Dockerfile копирует войну в "discovery.war", поэтому я ожидаю, что она появится/обнаружение (но вы действительно не сказали, что вы пытались и что не работали).

+1

Darn, в традиционном развертывании, корень контекста изменяется на 'обнаружение'. Это было то, чего мне не хватало. И я потратил несколько часов на изучение сетевых возможностей Docker :( Спасибо, доктор Сиер. В отдельном примечании было бы неплохо иметь различные параметры Eureka и Config, перечисленные где-то, например, для загрузки. Я нашел их в «EnvironmentRepositoryConfiguration», но копание исходного кода утомительно. –