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