构建
Envoy 构建系统使用 Bazel.
为了简化初始构建并快速入门,我们提供了一个基于 Ubuntu 的最新 Docker 容器,其中包含构建和 *静态链接* Envoy 所需的一切,请参阅 ci/README.md.
要构建而不使用 Docker 容器,请按照 bazel/README.md 中的说明进行操作。
Linux/Mac 目标要求
Envoy 最初是在 Ubuntu 14.04 LTS 上开发和部署的。它应该可以在任何合理最新的 Linux 上运行,包括 Ubuntu 20.04 LTS。
构建 Envoy 有以下要求
最新版本的 GCC/Clang - 请参阅 bazel/README.md#supported-compiler-versions 获取当前要求。
每个内核大约 2GB 的 RAM(因此对于具有超线程的 8 个内核,需要 32GB 的 RAM)。有关构建性能的更多信息,请参阅 此常见问题解答条目。
这些 Bazel 原生 依赖项。
请注意,对于 Clang/LLVM 8 及更低版本,可能需要使用 --define tcmalloc=gperftools
构建 Envoy,因为新版 tcmalloc 代码不能保证与较低版本的 Clang 编译。
Windows 目标要求
注意
2023 年 8 月 31 日,Envoy 项目由于缺乏资源而停止了对 Windows 的官方支持。我们将继续接受与 Windows 构建相关的补丁。在另行通知之前,Windows 构建将从 Envoy CI 以及 Envoy 发布和安全流程中排除。
Envoy 支持 Windows 作为目标平台。以下要求仅适用于您要构建 Windows 原生可执行文件的情况。如果您想在 Windows 上使用 WSL 或 Linux 容器构建 Linux 版本的 Envoy,请参阅上面的 Linux 要求。
在 Windows 上构建 Envoy 有以下要求
运行在 1903 (10.0.18362.1) 及更高版本的 Windows (虚拟) 计算机。
Windows 10 SDK,版本 1803 (10.0.17134.12)。某些功能可能需要更新的 SDK。
这些 Bazel 原生 依赖项。
详细说明
有关执行手动构建的更多信息,请参阅 开发人员使用 CI Docker 镜像 和 使用 Bazel 构建 Envoy 文档。
修改 Envoy
如果您有兴趣修改 Envoy 并测试您的更改,可以使用 Docker。本指南将介绍构建您自己的 Envoy 二进制文件并将其放入 Ubuntu 容器的过程。