2. Build
App Mesh is implemented by modern C++, require g++ version higher than 4.8.5, there are 2 ways to setup App Mesh build environment.
Build host support RHEL, Ubuntu, Debian and Fedora distributions with X86 or ARM architecture.
2.1. Option 1: Setup build environment on local host
The general way build all dependencies on local Linux host, this will build all the dependency libraries and need some time to finish.
$ git clone --depth=1 https://github.com/laoshanxi/app-mesh.git
$ sudo bash app-mesh/script/bootstrap/install_openssl.sh
$ sudo bash app-mesh/script/bootstrap/install_build_deps.sh
# clean
$ rm -rf app-mesh appmesh.tmp
After environment was setup with above steps, use bellow steps to build App Mesh.
cd app-mesh
mkdir build; cd build; cmake ..; make; make pack
Run the test targets after make:
make python_tests # Python SDK
make go_tests # Go SDK
make workflow_tests # Workflow engine (unit + E2E)
make rust_tests # Rust CLI
The C++ Catch2 suites live in test/, but add_subdirectory(test) is disabled
in CMakeLists.txt, so the build registers no CTest case. make test ARGS="-V"
therefore runs nothing.
2.2. Option 2: Build by docker image
The simple way is use docker image laoshanxi/appmesh:build_centos8 to build App Mesh directly which already have compiler and dependencies installed.
cd app-mesh
docker run --rm -v $(pwd):$(pwd) -w $(pwd) laoshanxi/appmesh:build_centos8 sh -c "mkdir build;cd build;cmake ..;make;make pack"
Build a Docker image to compile C++ application is a reliable and easy way to handle third party dependencies, anyone could use this docker image to build package without prepare a C++ environment.
There are different Dockerfile(s) with different compiler version could be selected to generate the Docker image:
docker/Dockerfile.build_centos7
docker/Dockerfile.build_centos8
docker/Dockerfile.build_ubuntu18
docker/Dockerfile.build_ubuntu22
docker/Dockerfile.build_ubuntu24
docker/Dockerfile.build_ubuntu
docker/Dockerfile.build_debian13
The Docker image build process is simple with this:
TAG_NAME=build_ubuntu24
IMAGE_NAME=laoshanxi/appmesh:${TAG_NAME}
git clone --depth=1 https://github.com/laoshanxi/app-mesh.git
cd app-mesh
! docker rmi -f ${IMAGE_NAME}
! docker rmi ubuntu:24.04
docker build --no-cache -f docker/Dockerfile.${TAG_NAME} -t ${IMAGE_NAME} .
docker push ${IMAGE_NAME}
The public pre-build Docker images can be used to build binary directly:
laoshanxi/appmesh:build_centos7
laoshanxi/appmesh:build_centos8
laoshanxi/appmesh:build_ubuntu18
laoshanxi/appmesh:build_ubuntu22
laoshanxi/appmesh:build_ubuntu24
laoshanxi/appmesh:build_debian13
2.3. Windows
Run the bootstrap once as Administrator (installs the MSVC/vcpkg dependencies, Go tools including the Dex server for local debugging, Rust, NSIS, and the EnVar NSIS plugin), then build:
.\script\bootstrap\install_build_deps.ps1
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 `
-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake `
-DVCPKG_TARGET_TRIPLET=x64-windows
cmake --build build --config Release --parallel
cmake --build build --config Release --target pack # NSIS installer in build\
Windows packages include dex.exe, passhash.exe, the protected
identity App, and the native appmesh-auth.ps1 launcher; see Install
for the deployment flow and the real-machine verification checklist.