The Envoy build system uses Bazel. In order to ease initial building and for a quick start, we provide an Ubuntu 16 based docker container that has everything needed inside of it to build and statically link envoy, see ci/README.md.
In order to build manually, follow the instructions at bazel/README.md.
Envoy was initially developed and deployed on Ubuntu 14 LTS. It should work on any reasonably recent Linux including Ubuntu 16 LTS.
Building Envoy has the following requirements:
- GCC 5+ (for C++14 support).
- These pre-built third party dependencies.
- These Bazel native dependencies.
On every master commit we create a set of lightweight Docker images that contain the Envoy binary. We also tag the docker images with release versions when we do official releases.
- envoyproxy/envoy: Release binary with symbols stripped on top of an Ubuntu Xenial base.
- envoyproxy/envoy-alpine: Release binary with symbols stripped on top of a glibc alpine base.
- envoyproxy/envoy-alpine-debug: Release binary with debug symbols on top of a glibc alpine base.
We will consider producing additional binary types depending on community interest in helping with CI, packaging, etc. Please open an issue in GitHub if desired.