[假设我有一个使用Docker从confluentinc/cp-kafka-connect
映像构建的Kafka Connect工作程序,该工作程序部署到服务器并旋转工作程序。现在大多数时候,该连接器将已经存在,因为我已经通过在端口8083上使用POST的REST API调用创建了该连接器。但是,在工作进程启动时如何通过脚本创建连接器(如果尚不存在) ?在它旋转后,我可以以某种方式让我的工人运行吗?
需要重载的command
原始问题:https://github.com/confluentinc/cp-docker-images/issues/467
解决方案
volumes:
- $PWD/scripts:/scripts # TODO: Create this folder ahead of time, on your host
command:
- bash
- -c
- |
/etc/confluent/docker/run &
echo "Waiting for Kafka Connect to start listening on kafka-connect ⏳"
while [ $$(curl -s -o /dev/null -w %{http_code} http://kafka-connect:8083/connectors) -eq 000 ] ; do
echo -e $$(date) " Kafka Connect listener HTTP state: " $$(curl -s -o /dev/null -w %{http_code} http://kafka-connect:8083/connectors) " (waiting for 200)"
sleep 5
done
nc -vz kafka-connect 8083
echo -e "\n--\n+> Creating Kafka Connector(s)"
/scripts/create-connectors.sh # Note: This script is stored externally from container
sleep infinity