本文构建参考该文件docker-build
1 构建环境
OS:windows11 WSL2
容器:Docker Desktop
镜像:ghcr.io/deepflowio/rust-build:1.18(根据时间采用最新的)
代码版本:v6.2.6
2 启动构建环境
- 本地先准备先下载好代码(请注意一定用git clone下载,构建过程中会检查.git文件)
git clone -b v6.2.6 https://github.com/deepflowio/deepflow.git e:/deeflow
- 基于构建镜像启动容器
docker run --name=dfbuild --network=host -v e:/deeflow:/deepflow -itd ghcr.io/deepflowio/rust-build:1.18 /bin/sh
3 构建Agent
- 进入容器
docker exec -it dfbuild /bin/sh
- 设置环境变量(不设置构建时会报错)
export CARGO_HTTP_CHECK_REVOKE=false
- 启动构建
source /opt/rh/devtoolset-8/enable && cp docker/rust-proxy-config /usr/local/cargo/config
RUSTFLAGS="-D warnings" && cargo build --release && cargo build --release --bin deepflow-agent-ctl
如无意外,5分钟应该就可以构建好了。
由于DeepFlow的Agent是采用Rust编写的,所以最终生成的文件中不会包含eBPF内核态的elf文件,因为字节码已经编译链接到Agent的二进制文件中,这也是Rust的优势。