Building ======== 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 :repo:`ci/README.md`. In order to build manually, follow the instructions at :repo:`bazel/README.md`. .. _install_requirements: Requirements ------------ 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 :repo:`pre-built ` third party dependencies. * These :repo:`Bazel native ` dependencies. Please see the linked :repo:`CI ` and :repo:`Bazel ` documentation for more information on performing manual builds. .. _install_binaries: Pre-built binaries ------------------ 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.