Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker Compose服务配置命令未按预期工作_Docker_Apache Kafka_Docker Compose - Fatal编程技术网

Docker Compose服务配置命令未按预期工作

Docker Compose服务配置命令未按预期工作,docker,apache-kafka,docker-compose,Docker,Apache Kafka,Docker Compose,因此,我试图让Docker Spring Boot容器等待,直到我的Kafka容器完成创建主题,以便在其中传输事件 到目前为止,我尝试的是: 检查是否已创建Kafka容器,这不起作用,因为我想等到主题创建完成 使用的依赖于服务配置,但同样,这要等到服务刚刚开始运行,但我需要等到Kafka容器创建了它的主题 试图在容器运行前休眠10秒,我相信这可能是这个问题的解决方案,尽管有点“骇客”。但是我没有看到10次睡眠的实际发生,这让我相信我在docker compose.yml中做错了什么 下面是我

因此,我试图让Docker Spring Boot容器等待,直到我的Kafka容器完成创建主题,以便在其中传输事件

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

  • 检查是否已创建Kafka容器,这不起作用,因为我想等到主题创建完成
  • 使用的
    依赖于
    服务配置,但同样,这要等到服务刚刚开始运行,但我需要等到Kafka容器创建了它的主题
  • 试图在容器运行前休眠10秒,我相信这可能是这个问题的解决方案,尽管有点“骇客”。但是我没有看到10次睡眠的实际发生,这让我相信我在
    docker compose.yml中做错了什么
下面是我的
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
我在命令服务配置下尝试了多个不同的值,包括:

  • [“sh”、“-c”、“sleep”、“10”]
  • [“睡眠”,“10”]
  • sleep 10

有人能解决我遇到的这个问题吗?

首先,重写
命令:sh-c sleep 10
,意味着你只运行该命令,而不是默认的imagex命令@TaylorHx的可能副本我在发布这个问题后尝试实现了答案,但是获取错误时出错
错误:合成文件“/docker Compose.yml”无效,因为:不支持服务的配置选项。kafka:“healthcheck”services.kafka-websocket-connector.dependens\u包含无效类型,它应该是字符串。在另一个问题上发表这一点会更好吗?@terrabl docker-compose.yaml版本2中不支持
健康检查
配置选项,您需要将
版本
属性更改为
'2.1'
'3'
。首先重写
命令:sh-c sleep 10
,这意味着您只运行该命令,而不是imagemable@TaylorHx的默认命令。在我发布此问题后,我尝试实现了答案,但是获取错误时出错
错误:合成文件“/docker Compose.yml”无效,因为:不支持服务的配置选项。kafka:“healthcheck”services.kafka-websocket-connector.dependens\u包含无效类型,它应该是字符串。在另一个问题上发布会更好吗?@terrabl docker-compose.yaml版本2中不支持
运行状况检查
配置选项,您需要将
版本
属性更改为
'2.1'
'3'