2016-07-26 4 views
1

У меня есть приложение Spring загрузочного со следующей конфигурацией:Не удается связать консул и весну загрузки приложение в Докер

spring: 
    thymeleaf: 
    cache: false 
    cloud: 
    consul: 
     host: consul 
     port: 8500 
     discovery: 
     prefer-ip-address: true 
     instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}} 

, что я хочу работать с Докером-композом (Docker 1.11.2, докер-сочинить 1.7. 1):

consul: 
    image: progrium/consul:latest 
    container_name: consul 
    hostname: consulhost 
    ports: 
    - "8400:8400" 
    - "8500:8500" 
    - "8600:53" 
    command: "-server -bootstrap-expect 1 -ui-dir /ui" 

collector-server: 
    container_name: collector-server 
    image: io.thesis/collector-server 
    ports: 
    - "9090:9090" 
    links: 
    - consul:consul 

К сожалению, это не работает, я получаю: com.ecwid.consul.transport.TransportException: java.net.ConnectException: Соединение отклонено.

У меня нет абсолютно никакой идеи, почему он не может подключиться к Консулу, потому что я могу подключиться к другим системам, например. rabbitmq в других приложениях именно так.

Спасибо за любые идеи!

ответ

1

Если вы пытаетесь подключиться сразу же после запуска контейнера, возможно, что консул еще не готов к подключению.

Вам нужно написать сценарий точки входа, чтобы дождаться, когда соединение будет доступно, или просто повторите попытку подключения несколько раз. См. https://docs.docker.com/compose/startup-order/ для получения дополнительной информации.

+0

Спасибо, я постараюсь ... Но я все еще удивляюсь, потому что мне никогда не приходилось делать это с помощью rabbitmq, mysql и т. Д. Консул запускается очень быстро, и журналы показывают, что это до моего весеннего контекста приложения это загрузка. –

+0

Он работает с docker-compose v2-format и depends_on. Большое спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^