建置
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 及更低版本,Envoy 可能需要使用 --define tcmalloc=gperftools
進行建置,因為新的 tcmalloc 程式碼不保證能使用較低版本的 Clang 編譯。
Windows 目標需求
注意
由於資源不足,Envoy 專案於 2023 年 8 月 31 日結束官方 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 容器中的過程。