源码编译
1. 容器编译
可以执行如下命令,完成编译,静态代码检查。
$ sh build/build-run-testing-image.sh
或者单独执行:
1. 准备编译环境
$ docker build --network host -t huatuo/huatuo-bamai-dev:latest -f ./Dockerfile.devel .
2. 启动编译容器
$ docker run -it --pid=host --privileged --cgroupns=host --network=host -v $(pwd):/go/huatuo-bamai huatuo/huatuo-bamai-dev:latest sh
3. 进入容器编译
$ make
2. 镜像发布
通过 docker build 方式能够快速的发布,最新二进制容器镜像。
docker build --network host -t huatuo/huatuo-bamai:latest .
3. 物理机编译
3.1 安装依赖
Ubuntu 24.04:
apt install make git clang libbpf-dev linux-tools-common curl capnproto
Fedora 40:
dnf install make git clang libbpf-devel bpftool curl capnproto capnproto-devel glibc-static
go install mvdan.cc/gofumpt@v0.8.0
go install mvdan.cc/sh/v3/cmd/shfmt@v3.11.0
go install golang.org/x/tools/cmd/goimports@v0.36.0
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.62.2
go install github.com/vektra/mockery/v2@v2.53.6
go install capnproto.org/go/capnp/v3/capnpc-go@v3.1.0-alpha.2
3.2 编译
$ make
4. BPF 调试编译
通过 BPF_DEBUG=1 将 -DDEBUG_BPF 传给 clang,把调试代码编译进 BPF 对象:
$ make BPF_DEBUG=1 # 或单独编译 BPF:make BPF_DEBUG=1 bpf-build
埋点、运行时开关和日志说明参见调试。