Linux 找不到名为';卡夫卡生产商;在共享库中';利伯卡夫卡';

Linux 找不到名为';卡夫卡生产商;在共享库中';利伯卡夫卡';,linux,docker,apache-kafka,Linux,Docker,Apache Kafka,我正在开发一个.NET核心应用程序,它使用Nuget包-Confluent.Kafka,版本0.11.3 我用它来实例化一个生产者,然后调用myProducer.ProduceAsync方法。我在应用程序日志中发现一个错误,说明-无法在共享库“librdkafka”中找到名为“rd_kafka_producev”的入口点。 我在Debian v9上运行的容器中运行Kafka。运行使用Kafka的.NET核心应用程序的docker容器已安装librdkafka1-v0.9.3-1。我需要手动将其安

我正在开发一个.NET核心应用程序,它使用Nuget包-Confluent.Kafka,版本0.11.3

我用它来实例化一个
生产者
,然后调用
myProducer.ProduceAsync
方法。我在应用程序日志中发现一个错误,说明-
无法在共享库“librdkafka”中找到名为“rd_kafka_producev”的入口点。

我在Debian v9上运行的容器中运行Kafka。运行使用Kafka的.NET核心应用程序的docker容器已安装
librdkafka1-v0.9.3-1
。我需要手动将其安装到容器中,作为Docker映像的一部分,使用:

运行apt get update-y
运行apt get install-y librdkafka dev

我不明白为什么我需要手动安装它-这是为了修复一个根本找不到库的错误。它不应该已经存在于图像上吗?我使用的是标准的
wurstmeister/kafka
Docker图像


一切都在不同的服务器上运行,使用完全相同的Confluent.Kafka包版本,并安装完全相同的
librdkafka1
。关于如何解决这个问题有什么想法吗?

我从Docker文件中删除了这个:

运行apt get update-y
运行apt get install-y librdkafka dev

然后,从运行我的应用程序的Debian容器中删除
librdkafka1
。将我的应用程序重新部署到容器中,现在它可以工作了。奇怪的是,
librdkafka1
现在不作为包存在于容器中

<>我发现 LabdKAFAK1是.NETCulf.St.Engy项目中我的.NET核心项目所需要的C++库。我也提出了这一点,而《利伯卡夫卡》的创作者马格努斯·伊登希尔(Magnus Edenhill)善意地提供了以下信息:

合流kafka dotnet依赖于librdkafka.redist nuget包 它包含librdkafka,因此通常不需要手动 在系统上安装librdkafka(在某些情况下 可能,例如在使用GSSAPI时)

因此,在大多数情况下,只要在解决方案中有Confluent.Kafka nuget包作为依赖项,就应该以某种方式安装
librdkafka
。因此,如果您遇到与我类似的问题,可能需要清除部署/容器和任何显式安装的
librdkafka1
实例,并重新部署以安装依赖项