使用 Docker 構建 Nebula Graph 源碼

圖片描述

Nebula Graph 介紹

Nebula Graph 是開源的高性能分佈式圖數據庫。項目使用 C++ 語言開發,cmake 工具構建。其中兩個重要的依賴是 Facebook 的 Thrift RPC 框架和 folly 庫.git

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

開發環境構建

Nebula Graph 依賴較多,且一些第三方庫需本地編譯安裝,爲了方便開發者本地編譯項目源碼, Nebula Graph 官方爲你們提供了一個預安裝全部依賴的 docker 鏡像)。開發者只需以下的三步便可快速的編譯 Nebula Graph 工程,參與 Nebula Graph 的開源貢獻:docker

$ docker pull vesoft/nebula-dev
  • 運行 Docker 並掛載 Nebula 源碼目錄到容器的 /home/nebula 目錄
$ docker run --rm -ti -v {nebula-root-path}:/home/nebula vesoft/nebula-dev bash
感謝社區夥伴@阿東 提的建議,把上面的 {nebula-root-path} 替換成你 Nebula Graph 實際 clone 的目錄

爲了不每次退出 docker 容器以後,從新鍵入上述的命令,咱們在 vesoft-inc/nebula-dev-docker 中提供了一個簡單的 build.sh 腳本,可經過 ./build.sh /path/to/nebula/root/ 進入容器。shell

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

提醒

Nebula 項目目前主要採用靜態依賴的方式編譯,加上附加的一些調試信息,因此生產的一些可執行文件會比較佔用磁盤空間,建議小夥伴預留 20G 以上的空閒空間給 Nebula 目錄 :)數據庫

Docker 加速小 Tips

因爲 Docker 鏡像文件存儲在國外,在 pull 過程當中會遇到速度過慢的問題,這裏 Nebula Graph 提供一種加速 pull 的方法:經過配置國內地址解決,例如:json

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

{
  "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/neb...

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

相關文章
相關標籤/搜索