问题描述
在使用 Kafka 官方的 Golang SDK (confluent-kafka-go) 时,在 Alpine 容器中编译会报错,而在宿主机上编译没有这个问题
详细问题描述参考:官方 Github issue
问题原因
- confluent-kafka-go 依赖C语言库 (librdkafka), 编译时需指定
CGO_ENABLED=1
- Alpine Linux使用musl libc而不是glibc,
go build
编译时需指定-tags musl
解决方案
Dockerfile里指定编译依赖, 编译时指定CGO_ENABLED=1
和-tags musl
, Dockerfile示例如下: