2016-07-26 70 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}} 

,我要與搬運工人,撰寫運行(泊塢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:連接被拒絕。

我完全不知道爲什麼它不能連接到Consul,因爲我可以連接到其他系統,例如, rabbitmq在其他應用程序中就是這樣。

謝謝你的任何想法!

回答

1

如果您嘗試在容器啓動時立即連接,則可能該領事尚未準備好接收連接。

您需要編寫一個入口點腳本來等待連接可用,或者甚至只是重新嘗試連接幾次。有關更多信息,請參閱https://docs.docker.com/compose/startup-order/

+0

謝謝,我會試試...但我仍然在想,因爲我從來沒有用rabbitmq,mysql等來做這件事。Consul開始的速度非常快,日誌顯示它在我的spring應用程序上下文正在加載。 –

+0

它適用於docker-compose v2格式和depends_on。非常感謝! –

相關問題