无法在Docker中链接Consor和Spring Boot应用程序

无法在Docker中链接Consor和Spring Boot应用程序,docker,spring-boot,docker-compose,spring-cloud,consul,Docker,Spring Boot,Docker Compose,Spring Cloud,Consul,我有一个具有以下配置的Spring Boot应用程序: spring: thymeleaf: cache: false cloud: consul: host: consul port: 8500 discovery: prefer-ip-address: true instanceId: ${spring.application.name}:${spring.application.instance_i

我有一个具有以下配置的Spring Boot应用程序:

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 compose一起运行(docker 1.11.2,docker compose 1.7.1):

不幸的是,这不起作用,我得到:com.ecwid.concur.transport.TransportException:java.net.ConnectException:Connection-densed

我完全不知道为什么它不能连接到Concur,因为我可以通过这种方式连接到其他系统,例如其他应用程序中的rabbitmq


谢谢你的建议

如果您试图在容器启动时立即连接,则领事可能尚未准备好接收连接


您需要编写入口点脚本以等待连接可用,甚至只需重试连接几次。有关更多信息,请参阅。

谢谢,我会尝试……但我仍然想知道,因为我从来没有用rabbitmq、mysql等做过这件事。Concur启动得非常快,日志显示它在我的spring应用程序上下文加载之前就已经启动了。它使用docker compose v2格式工作,并且取决于。谢谢!
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