使用 Docker 構建 Nebula Graph 原始碼

NebulaGraph發表於2019-09-06

Nebula Graph 介紹

Nebula Graph 是開源的高效能分散式圖資料庫。專案使用 C++ 語言開發,cmake 工具構建。其中兩個重要的依賴是 Facebook 的 Thrift RPC 框架和 folly 庫.

由於專案採用了 C++ 14 標準開發,需要使用較新版本的編譯器和一些三方庫。雖然 Nebula Graph 官方給出了一份開發者構建指南,但是在本地構建完整的編譯環境依然不是一件輕鬆的事。

開發環境構建

Nebula Graph 依賴較多,且一些第三方庫需本地編譯安裝,為了方便開發者本地編譯專案原始碼, Nebula Graph 官方為大家提供了一個預安裝所有依賴的 [docker 映象](docker hub)。開發者只需如下的三步即可快速的編譯 Nebula Graph 工程,參與 Nebula Graph 的開源貢獻:

   $ docker pull vesoft/nebula-dev
  • 執行 Docker 並掛載 Nebula 原始碼目錄到容器的 /home/nebula 目錄
   $ docker run --rm -ti -v {nebula-root-path}:/home/nebula vesoft/nebula-dev bash

為了避免每次退出 docker 容器之後,重新鍵入上述的命令,我們在 vesoft-inc/nebula-dev-docker 中提供了一個簡單的 build.sh 指令碼,可通過 ./build.sh /path/to/nebula/root/ 進入容器。

  • 使用 cmake 構建 Nebula 工程
   docker> mkdir _build && cd _build
   docker> cmake .. && make -j2
   docker> ctest # 執行單元測試

提醒

Nebula 專案目前主要採用靜態依賴的方式編譯,加上附加的一些除錯資訊,所以生產的一些可執行檔案會比較佔用磁碟空間,建議小夥伴預留 20G 以上的空閒空間給 Nebula 目錄 :)

Docker 加速小 Tips

由於 Docker 映象檔案儲存在國外,在 pull 過程中會遇到速度過慢的問題,這裡 Nebula Graph 提供一種加速 pull 的方法:通過配置國內地址解決,例如:

Linux 小夥伴可在 /etc/docker/daemon.json 中加入如下內容(若檔案不存在,請新建該檔案)

{
  "registry-mirrors": [
    "https://dockerhub.azk8s.cn",
    "https://reg-mirror.qiniu.com"
  ]
}

macOS 小夥伴請點選 Docker Desktop 圖示 -> Preferences -> Daemon -> Registry mirrors。 在列表中新增 https://dockerhub.azk8s.cnhttps://reg-mirror.qiniu.com 。修改後,點選 Apply & Restart 按鈕, 重啟 Docker。

Nebula Graph 社群

Nebula Graph 社群是由一群愛好圖資料庫,共同推進圖資料庫發展的開發者構成的社群。

本文由 Nebula Graph 社群 Committer 伊興路貢獻,也歡迎閱讀本文的你參與到 Nebula Graph 的開發,或向 Nebula Graph 投稿。

附錄

Nebula Graph:一個開源的分散式圖資料庫。

GitHub:https://github.com/vesoft-inc/nebula

知乎:https://www.zhihu.com/org/nebulagraph/posts

微博:https://weibo.com/nebulagraph

相關文章