构建 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 的磁盘空间来容纳此镜像。
此脚本在您的主机系统上以有效 root 身份运行。
步骤 2:仅使用 Envoy 二进制文件构建镜像
在此步骤中,我们将构建 Envoy 部署镜像。
注意
docker
CI 目标期望先前使用上述步骤之一构建了发布包。
为了在 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 并测试您的更改,这将非常有用。