编译

1 官方镜像编译

为隔离开发者本地环境和简化编译流程,我们提供容器化编译方式,你可以直接通过 docker build,构建完成的镜像(包含底层采集器 huatuo-bamai、bpf obj、工具等)。在项目根目录运行:

docker build --network host -t huatuo/huatuo-bamai:v2.1.0 .

2 自定义镜像编译

文件 Dockerfile.dev 内容:

FROM golang:1.23.0-alpine AS base
# 镜像构建加速
# RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
RUN apk add --no-cache \
                make \
                clang15 \
                libbpf-dev \
                bpftool \
                curl \
                git

ENV PATH=$PATH:/usr/lib/llvm15/bin

# build huatuo components
FROM base AS build
ARG BUILD_PATH=${BUILD_PATH:-/go/huatuo-bamai}
ARG RUN_PATH=${RUN_PATH:-/home/huatuo-bamai}
WORKDIR ${BUILD_PATH}

2.1 构建 dev 镜像

docker build --network host -t huatuo/huatuo-bamai-dev:latest -f ./Dockerfile.dev .

2.2 运行 dev 容器

docker run -it --privileged --cgroupns=host --network=host -v /path/to/huatuo:/go/huatuo-bamai huatuo/huatuo-bamai-dev:latest sh

2.3 编译

容器内执行

make

编译完成后,所有产出物在 ./_output 下。

3 物理机或 VM 编译

采集器编译依赖以下工具,可自行根据本地实际环境安装:

  • make
  • git
  • clang15
  • libbpf
  • bpftool
  • curl

考虑本地环境差异过大,遇到编译可能问题会很多,为隔离环境差异,排查问题也方便建议尽量使用 docker 编译方式。


最后修改于 December 19, 2025: update url (3a61631)