Docker Compose服务configuration命令不按预期工作

所以我试图让我的Docker Spring Boot容器等到我的Kafka容器完成创build它的话题来传输事件。

我到目前为止所尝试的是:

  • 检查卡夫卡容器是否已经创build,这是行不通的,因为我想等到创build主题
  • 使用了depends_on服务configuration,但是一直等到服务刚刚开始运行,但是我需要等到Kafka容器创build它的主题。
  • 在容器运行之前试图睡10秒,我相信这可能是解决这个问题的方法,虽然是“哈克”。 但是我没有看到实际发生的10次睡眠,这让我相信我在docker-compose.yml做了错误docker-compose.yml

下面你可以find我docker-compose.yml

 version: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka:0.10.2.0 ports: - "9092:9092" expose: - "9092" - "2181" environment: KAFKA_ADVERTISED_HOST_NAME: localhost KAFKA_CREATE_TOPICS: "flight-events:1:1" KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /var/run/docker.sock:/var/run/docker.sock depends_on: - zookeeper redis: image: redis ports: - "6379" restart: always kafka-websocket-connector: command: sh -c sleep 10 build: ./kafka-websocket-connector image: andrewterra/kafka-websocket-connector ports: - "8077:8077" depends_on: - kafka - redis - zookeeper links: - kafka - redis 

我在命令服务configuration下尝试了多个不同的值,其中包括:

  • ["sh", "-c", "sleep", "10"]
  • ["sleep", "10"]
  • sleep 10

有没有人有任何解决这个问题,我有?