【发布时间】:2021-12-18 22:45:07
【问题描述】:
我正在尝试使用 shell 脚本文件在 Docker 中运行的 Kafka 容器中创建主题。
docker-compose.yml
---
version: '2'
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
container_name: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ports:
- "22181:2181"
kafka:
image: confluentinc/cp-kafka:latest
container_name: kafka
depends_on:
- zookeeper
ports:
- "29092:29092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
init.sh
#!/bin/zsh
docker compose up -d
docker exec kafka kafka-topics --create --bootstrap-server localhost:29092 --partitions 1 --replication-factor 1 --topic Test
当我运行 docker-compose 时容器启动正常,但主题创建失败。
[2021-11-04 17:35:07,957] WARN [AdminClient clientId=adminclient-1] Connection to node -1 (localhost/127.0.0.1:29092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
但是,当我在命令行中运行相同的命令时,没有任何更改,它可以正常工作并创建主题。
Created topic Test.
我很茫然,在这里阅读以前关于类似问题的问题并没有帮助:主要是由于拼写错误或在不需要的地方添加了引号。我已经尝试更改 #! bash、sh 和 usr/bin/env(以及其他)无济于事。
任何帮助表示赞赏。
Docker 版本:版本 20.10.8 在 Mac (Intel) 上运行
【问题讨论】:
-
您正在运行容器并且没有任何睡眠持续时间,您正在尝试运行总是会失败的命令。将 docker-compose up -d 从 init.sh 中分离出来。等待 Broker 运行并准备好连接。
标签: docker shell apache-kafka docker-compose