编译
1 官方镜像编译
为隔离开发者本地环境和简化编译流程,我们提供容器化编译方式,你可以直接通过 docker build,构建完成的镜像(包含底层采集器 huatuo-bamai、bpf obj、工具等)。在项目根目录运行:
docker build --network host -t huatuo/huatuo-bamai:latest .
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 编译方式。
页面反馈
此页面对您有帮助吗?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.