建置 Envoy Docker 映像檔

以下步驟將引導您建置自己的 Envoy 二進位檔,並將其放入乾淨的 Ubuntu 容器中。

提示

這些說明使用 ci/run_envoy_docker.sh 在 Docker 中執行命令。

預設情況下,這會將 bazel 執行檔和任何成品放置在 /tmp/envoy-docker-build 中。

您可以將 ENVOY_DOCKER_BUILD_DIR 環境變數設定為您選擇的路徑來覆寫此設定。

步驟 1:建置 Envoy

您將使用 envoyproxy/envoy-build 編譯 Envoy。此映像檔具有建置 Envoy 所需的所有軟體。從您的 Envoy 目錄

$ pwd
src/envoy
$ ./ci/run_envoy_docker.sh './ci/do_ci.sh release'

該命令將需要一些時間才能執行,因為它正在編譯 Envoy 二進位檔並執行測試。

如果您的系統資源有限,或者您希望在不執行測試的情況下進行建置,您也可以按如下方式進行建置

$ pwd
src/envoy
$ ./ci/run_envoy_docker.sh './ci/do_ci.sh release.server_only'

有關建置和不同建置目標的更多資訊,請參閱 ci/README.md

警告

這些用於建置 Envoy 的說明使用 envoyproxy/envoy-build-ubuntu 映像檔。您需要 4-5GB 的磁碟空間來容納此映像檔。

此腳本以您主機系統上的有效根使用者身分執行。

步驟 2:建置僅包含 Envoy 二進位檔的映像檔

在此步驟中,我們將建置 Envoy 部署映像檔。

注意

docker CI 目標預期先前已使用上述步驟之一建置發佈 tarball。

為了在 Envoy 建置映像檔內建置 Docker,我們需要設定環境變數 ENVOY_DOCKER_IN_DOCKER

$ pwd
src/envoy/
$ ENVOY_DOCKER_IN_DOCKER=1 ./ci/run_envoy_docker.sh './ci/do_ci.sh docker'

現在,您可以使用 Envoy 映像檔,透過變更相關 Dockerfile 中的 FROM 行來建置任何沙箱。

如果您有興趣修改 Envoy 並測試您的變更,這會特別有用。