Skip to content

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:

  1. Docker: Ensure Docker is installed on your system.

  2. Clone NebulaGraph's Source Code: Clone the repository locally using:

    git clone --branch release-3.6

    This clones the NebulaGraph source code to a subdirectory named nebula.

Compilation steps

  1. 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.

  2. Start the compilation container.

    docker run -ti \
      --security-opt seccomp=unconfined \
      -v "$PWD":/home \
      -w /home \
      --name nebula_dev \
      vesoft/nebula-dev:ubuntu2004 \
    • --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 /home directory.
    • -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 ubuntu2004 version of the vesoft/nebula-dev compilation image.
    • bash: Executes the bash command 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.

  3. Compile NebulaGraph inside the container.

    1. Enter the NebulaGraph source code directory.

      cd nebula
    2. Create a build directory and enter it.

      mkdir build && cd build
    3. Use CMake to generate the Makefile.

      For more on CMake, see CMake Parameters.

    4. Compile NebulaGraph.

      # 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.

  4. Install the Executables and Libraries.

    Post successful compilation, NebulaGraph's binaries and libraries are located in /home/nebula/build. Install them to /usr/local/nebula:

    make install

Once completed, NebulaGraph is compiled and installed in the host directory /usr/local/nebula.

Next Steps

Last update: October 24, 2023