Compile NebulaGraph using Docker¶
NebulaGraph's source code is written in C++. Compiling NebulaGraph requires certain dependencies which might conflict with host system dependencies, potentially causing compilation failures. Docker offers a solution to this. NebulaGraph provides a Docker image containing the complete compilation environment, ensuring an efficient build process and avoiding host OS conflicts. This guide outlines the steps to compile NebulaGraph using Docker.
Before you begin:
Docker: Ensure Docker is installed on your system.
Clone NebulaGraph's Source Code: Clone the repository locally using:
git clone --branch release-3.5 https://github.com/vesoft-inc/nebula.git
This clones the NebulaGraph source code to a subdirectory named
Pull the NebulaGraph compilation image.
docker pull vesoft/nebula-dev:ubuntu2004
Here, we use the official NebulaGraph compilation image,
ubuntu2004. For different versions, see nebula-dev-docker.
Start the compilation container.
docker run -ti \ --security-opt seccomp=unconfined \ -v "$PWD":/home \ -w /home \ --name nebula_dev \ vesoft/nebula-dev:ubuntu2004 \ bash
--security-opt seccomp=unconfined: Disables the seccomp security mechanism to avoid compilation errors.
-v "$PWD":/home: Mounts the local path of the NebulaGraph code to the container's
-w /home: Sets the container's working directory to
/home. Any command run inside the container will use this directory as the current directory.
--name nebula_dev: Assigns a name to the container, making it easier to manage and operate.
vesoft/nebula-dev:ubuntu2004: Uses the
ubuntu2004version of the
bash: Executes the
bashcommand inside the container, entering the container's interactive terminal.
After executing this command, you'll enter an interactive terminal inside the container. To re-enter the container, use
docker exec -ti nebula_dev bash.
Compile NebulaGraph inside the container.
Enter the NebulaGraph source code directory.
Create a build directory and enter it.
mkdir build && cd build
Use CMake to generate the Makefile.For more on CMake, see CMake Parameters.
cmake -DCMAKE_CXX_COMPILER=$TOOLSET_CLANG_DIR/bin/g++ -DCMAKE_C_COMPILER=$TOOLSET_CLANG_DIR/bin/gcc -DENABLE_WERROR=OFF -DCMAKE_BUILD_TYPE=Debug -DENABLE_TESTING=OFF ..
# The -j parameter specifies the number of threads to use. # If you have a multi-core CPU, you can use more threads to speed up compilation. make -j2
Compilation might take some time based on your system performance.
Install the Executables and Libraries.
Post successful compilation, NebulaGraph's binaries and libraries are located in
/home/nebula/build. Install them to
Once completed, NebulaGraph is compiled and installed in the host directory