sar*_*rah 2 apache-kafka apache-kafka-connect
我试图在执行 connect-distributed 命令后创建一个 kafka 连接器。我写了一个 entrypoint.sh 脚本并将它与 CMD 一起使用。我有这样的 docker 文件:
FROM confluentinc/cp-kafka
RUN mkdir /plugins
RUN mkdir /config
COPY kafka-connect-couchbase-*.jar /plugins/
COPY config /config/
RUN chmod +x /config/stage/entrypoint.sh
ENV EXPOSED_PORT 8083
CMD /config/stage/entrypoint.sh
Run Code Online (Sandbox Code Playgroud)
我有入口点脚本文件为:
connect-distributed config/"${DEPLOY_ENV}"/connect-distributed.properties
curl -X POST -H "Content-Type: application/json" -d @config.json http://localhost:8083/connectors
Run Code Online (Sandbox Code Playgroud)
deploy_env 无关紧要,它来自 jenkins。config 文件和distributed.properties 也无关紧要,它是正确的,我手动尝试过。
Kafka connect 启动没有问题,但是用于创建连接器的curl命令无效。
简而言之,我想在 connect-distributed 启动后创建一个连接器,而不在容器外执行任何休息请求。我如何做到这一点?
您需要确保您正在等待 Kafka Connect 工作器完全启动。
顺便说一句,您最好从 Kafka Connect 基本映像开始
FROM confluentinc/cp-kafka-connect-base:5.5.0
Run Code Online (Sandbox Code Playgroud)
通常你会使用 Confluent Hub 来安装连接器,但看起来 Couchbase 不存在,所以你必须像你所做的那样复制到 JAR 中。
在 Connect 镜像中启动 Kafka Connect 的实际脚本是/etc/confluent/docker/run,所以你/config/stage/entrypoint.sh应该看起来像这样:
FROM confluentinc/cp-kafka-connect-base:5.5.0
Run Code Online (Sandbox Code Playgroud)
另见https://rmoff.net/2018/12/15/docker-tips-and-tricks-with-ksql-and-kafka/
| 归档时间: |
|
| 查看次数: |
1027 次 |
| 最近记录: |