envoy开发调试环境搭建


envoy开发调试环境搭建

文章插图
image
前段时间研究envoy的filter开发,在windows机器环境上面折腾了会,这里记录一下,希望能够帮助到大家少走一些坑
主要是使用vscode devContainer的方式来搭建开发调试环境, 这里稍微解释下,devContainer开发容器是把工程所需的环境打包成容器镜像,在本机运行vscode后会连接到这个开发容器,特别envoy是个cpp项目,环境配置比较复杂,这种方式这样大大提高了开发环境的搭建
但是对于计算机的配置有一些要求:
  • 内存>= 32G
  • 空余磁盘空间>100G的
首先安装DockerDeskTop请配置启用WSL2
envoy开发调试环境搭建

文章插图
会默认在WSL2环境启用下面2个linux子系统
envoy开发调试环境搭建

文章插图
这里有个坑 默认好像是安装在系统盘C盘,如果你的C盘剩余可用空间如果低于100G的话, 需要更改 WSL Docker Desktop 存储路径
我是将WSL Docker Desktop 存储路径转存到了我的移动硬盘

envoy开发调试环境搭建

文章插图
image

envoy开发调试环境搭建

文章插图
image
有102G
具体如何操作这里请参考 https://blog.csdn.net/qq12547345/article/details/125358539
下载envoy源码https://github.com/envoyproxy/envoy
git clone 这里就得注意,我在windows环境git clone后会遇到文件的换行格式有问题,然后我用wsl的ubuntu机器git clone 就没有这个问题 。
也许是我的环境问题,如果你也遇到了提示文件格式有问题,可以试试
我本来是用最新版的尝试,发现不行(请看文章最后我遇到的错误记录),然后我就一个版本一个版本的试验,在1.20.7版本搞成功了, 下面是基于1.20.7版本的envoy 。
构建开发容器打开vscode装好 DevContainer这个插件

envoy开发调试环境搭建

文章插图
image
然后打开envoy工程
vscode会检测到envoy工程的devcontainer配置文件 就会给个提示

envoy开发调试环境搭建

文章插图
image
这一步是根据devcontainer配置文件进行构建开发容器,需要花点时间,请耐心等待
在开发容器内生成相应的依赖文件这一步成功完成后,代码着色,代码跳转就没问题
我们在vscode里面新开一个Terminal

envoy开发调试环境搭建

文章插图
image
# 这个命令需要在容器内部执行sudo chown -R vscode /workspaces
envoy开发调试环境搭建

文章插图
image
然后运行脚本
tools/vscode/refresh_compdb.sh
envoy开发调试环境搭建

文章插图
image
执行成功如下
envoy开发调试环境搭建

文章插图
会创建一个complie_commands.json文件
envoy开发调试环境搭建

经验总结扩展阅读