如何在 testcontainers kafka 映像中执行 kafka-configs 命令
Posted
技术标签:
【中文标题】如何在 testcontainers kafka 映像中执行 kafka-configs 命令【英文标题】:How to execute kafka-configs command inside testcontainers kafka image 【发布时间】:2019-06-25 22:23:42 【问题描述】:我正在使用testcontainers kafka image,它是confluent cp-kafka,我需要使用命令修改kafka config:
./kafka-configs.sh --alter --entity-name <TOPIC_NAME> --entity-type topics --add-config message.timestamp.type=LogAppendTime --zookeeper <HOST>:<PORT>
我在使用 KafkaContainer::execInContainer
执行此命令时遇到问题,它不会产生这样的文件或目录。
我在 ubuntu 上查看了 github 镜像和 confluent 安装,它应该位于的位置,并尝试了各种选项,但均未成功。
如何正确地做到这一点?
【问题讨论】:
理想情况下,您应该运行kafka-configs
在单元测试中使用的实际 Java API,而不是调用 shell 脚本
【参考方案1】:
./kafka-configs.sh
假定 kafka-configs.sh
在当前目录中可用,但实际情况可能并非如此(尝试运行 cwd
或 ls -la
并检查输出)。
但是如果你在kafka-configs.sh
之前删除./
,它应该使用PATH变量中的命令,该变量应该是在Kafka镜像中配置的。
【讨论】:
我试过这两个选项都没有成功。错误是kafka-config can not be found in $PATH
以上是关于如何在 testcontainers kafka 映像中执行 kafka-configs 命令的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 testcontainers 和 spring-kafka 准备测试
如何使用 Junit 5 使用 Testcontainer 对 Kafka 运行集成测试
Kafka TestContainer 尝试连接到错误的地址
spring boot kafka 在将 testcontainers 与 kafka、zookeeper、模式注册表一起使用时因“代理可能不可用”而失败