这是我们用来托管docker连接插件的docker映像
FROM confluentinc/cp-kafka-connect:5.3.1
ENV CONNECT_PLUGIN_PATH=/usr/share/java
# JDBC-MariaDB
RUN wget -nv -P /usr/share/java/kafka-connect-jdbc/ https://downloads.mariadb.com/Connectors/java/connector-java-2.4.4/mariadb-java-client-2.4.4.jar
# SNMP Source
RUN wget -nv -P /tmp/ https://github.com/name/kafka-connect-snmp/releases/download/0.0.1.11/kafka-connect-snmp-0.0.1.11.tar.gz
RUN mkdir /tmp/kafka-connect-snmp && tar -xf /tmp/kafka-connect-snmp-0.0.1.11.tar.gz -C /tmp/kafka-connect-snmp/
RUN mv /tmp/kafka-connect-snmp/usr/share/kafka-connect/kafka-connect-snmp /usr/share/java/
我通过docker compose运行这个docker,然后我指定了一些在这里定义的公共env变量https://docs.confluent.io/current/installation/docker/config-reference.html#kafka-连接配置
但是我还想从env变量中指定连接器相关的配置,例如我已经这样做了
- CONNECT_NAME=snmp-connector
- CONNECT_CONNECTOR_CLASS=com.github.jcustenborder.kafka.connect.snmp.SnmpTrapSourceConnector
- CONNECT_TOPIC=fm_snmp
我想做的,不是打电话
curl -X POST -H "Content-Type: application/json" --data '{"name":"","config":{"connector.class":"com.github.jcustenborder.kafka.connect.snmp.SnmpTrapSourceConnector","topic":"fm_snmp"}}' http://localhost:8083/connectors
我只想通过env变量指定它,但是!!不幸的是它不起作用。所以当我尝试查看活动连接器列表时-localhost:8083/connectors/ ,那我就看不到了。
最后,我的问题是,我可以通过env变量来配置它,还是只使用curl?
1条答案
按热度按时间vbopmzt11#
不能将其作为环境变量传递,但可以通过传递自定义命令将其指定为docker启动的一部分。下面是一个使用docker compose的示例。如果你打电话来
docker run
你需要把它重新设计成一个合适的结构:这将调用一个连接器脚本,但是如果您想直接嵌入它,可以这样做。