当前位置: 首页 > news >正文

解决 Alpine 容器中编译 confluent-kafka-go 报错的问题

问题描述

在使用 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示例如下:

FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/golang:1.24.5-alpine3.22 AS builder# 指定编译依赖
RUN apk add --no-cache git build-baseENV GOPROXY=https://goproxy.cn,direct \GO111MODULE=onWORKDIR /appCOPY go.mod go.sum ./
RUN go mod downloadCOPY . .# 编译时指定CGO_ENABLED=1和-tags musl
RUN CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -tags musl -ldflags="-s -w" -o /app/your-app ./cmd/main.goFROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/alpine:3.22.0COPY --from=builder /app/cloud-agent /usr/local/bin/EXPOSE 8080CMD ["your-app"]

参考

https://github.com/confluentinc/confluent-kafka-go/issues/479

http://www.dtcms.com/a/314467.html

相关文章:

  • LLaMA-Factory微调教程4:模型评估
  • Spring Boot + ShardingSphere 分库分表实战
  • 【CVPR2025】计算机视觉|AnomalyNCD:让工业异常分类“脱胎换骨”!
  • 计算机视觉(2)车规摄像头标准
  • YOLO11涨点优化:原创自研DSAM注意力!基于BiLevelRoutingAttention的颠覆性升级
  • nodejs 封装方法将打印日志输出到指定文件
  • javacc实现简单SQL解析器
  • Llama 3词汇表揭秘:128,000个token解析:merges 是子词分词算法
  • 数据结构——单向链表部分操作及valgrind安装
  • Exporters | 安装mongodb_exporter
  • 数据分页异步后台导出excel
  • 【Ubuntu】请问,`ip -a`显示的“wlo1”是什么呀?
  • 笔试——Day28
  • 如何在 Ubuntu 24.04 上安装和配置 TFTP 服务器
  • 高防服务器租用的作用都有哪些?
  • 上海交通大学联合项目论文解读 | Hume 模型:视觉 - 语言 - 动作模型中引入系统2思维
  • 单片机51 day46
  • 部署 Kibana 8.2.2 可视化管理 Elasticsearch 8.2.2 集群
  • 【测试工程思考】测试自动化基础能力建设
  • 机试备考笔记 4/31
  • Linux开发利器:探秘开源,构建高效——基础开发工具指南(下)【make/Makefile】
  • 笛卡尔坐标
  • 机器学习笔记:集成学习/模型融合
  • usr/bin/ld链接报错undefined reference `av_frame_free(AVFrame**)‘等ffmpeg库报错
  • 【Spark征服之路-4.5-Spark-Streaming核心编程(三)】
  • debian 时间同步 设置ntp服务端 客户端
  • FastAPI入门:中间件、CORS跨域资源共享、SQL数据库
  • 【笔记】ROS1|4 Turtlebot3仿真Waffle循线跟踪【旧文转载】
  • Linux 磁盘管理与分区配置
  • open-webui pipelines报404, ‘Filter pipeline.exporter not found‘