在本文中,我们将会介绍如何在 macOS 上用 Docker 搭建开发环境,进行编译、运行 Nebula Graph 2.0。
概述
在 Docker 镜像:vesoft/nebula-dev 中,我们提供了 Nebula Graph 的整个编译环境,支持你在本地更改源码,构建代码并在容器中进行调试。
执行以下步骤以开始快速开发:
硬件要求
- CPU:x86_64
- 内存:至少 4GB
- 硬盘大小:至少 10GB
- 可运行 Docker,详见 https://docs.docker.com/docker-for-mac/install/
- 可联网
具体 Nebula Graph 的运行配置要求可参考官网文档:运行配置要求
编译 Nebula Graph 2.0
在下面内容,你可以了解到使用 Nebula Graph 服务的所有操作步骤,包括了不限于如何启动 Nebula Graph 服务。
下载源码到本地
- 打开 Terminal,将所在目录切换到你想要安装到的路径下
- 执行下面命令 clone 源码:
bash> git clone https://github.com/vesoft-inc/nebula-graph.git
从 Docker Hub 获取镜像
可执行下面命令
bash> docker pull vesoft/nebula-dev
运行 Docker 容器
执行下面命令运行 Docker 容器并将本地源码目录挂载到容器工作目录 /home/nebula
中:
bash> docker run --rm -ti \
--security-opt seccomp=unconfined \
-v /path/to/nebula/directory:/home/nebula \
-w /home/nebula \
vesoft/nebula-dev \
将上面命令中的 /path/to/nebula/directory
替换为个人源码路径。
如果你想每次关闭 Docker 后自动释放资源,加入 --fm
参数:
bash> docker run --rm -ti \
--security-opt seccomp=unconfined \
-v /path/to/nebula/directory:/home/nebula \
-w /home/nebula \
vesoft/nebula-dev \
提示:Docker 中的路径如果没有映射到本地,在 Docker 关闭后路径内的修改将会丢失
在 Docker 容器内编译
按照下面的步骤执行:
docker> mkdir build && cd build
docker> cmake -DENABLE_BUILD_STORAGE=on -DCMAKE_EXPORT_COMPILE_COMMANDS=on ..
2.1 默认设置中 storage build 为 off 状态,从而缩短单元测试编译时间。
2.2 默认 Nebula Graph 安装路径为 /user/local/nebula
,如果该路径的访问权,将出现以下错误信
2.3 如果你要更改安装路径,可在 Docker 输入以下命令:
docker> cmake -DCMAKE_INSTALL_PREFIX=user_install_path -DENABLE_BUILD_STORAGE=on -DCMAKE_EXPORT_COMPILE_COMMANDS=on ..
将 user_install_path
替换为想要安装的路径。
docker> make -jN#
3.1 将 N 替换成用来编译的硬件核数
3.2 如果 Docker 运行资源不足,会出现以下错误:
进入 Docker >> 偏好 >> 资源
可设置 Docker 的 CPU 数和内存配置
docker> make install-all
启动 Nebula Graph 服务
- 上述步骤完成后即可在容器内启动 Nebula Graph 服务,Nebula Graph 的默认安装目录为
/usr/local/nebula/
。
docker> cd /usr/local/nebula
- 拷贝之前的 Nebula Graph 服务的配置文件
docker> cp etc/nebula-graphd.conf.default etc/nebula-graphd.conf
docker> cp etc/nebula-metad.conf.default etc/nebula-metad.conf
docker> cp etc/nebula-storaged.conf.default etc/nebula-storaged.conf
- 启动服务
docker> ./scripts/nebula.service start all
若启动成功以下信息将会出现:
运行 Nebula Graph 2.0
在下面内容,我们会介绍如何安装 Nebula Console 并且通过它连接 Nebula Graph 服务。
注意:如果要连接 Nebula Graph 服务,请先确保 Nebula Graph 服务已启动。
在 Docker 内安装 Go
- 使用
cd
命令切换到 Docker 中 Go 的安装路径
docker> cd
- 前往 Go 官网的文档:https://golang.org/doc/install,右键点击
Download Go for Linux
,复制链接地址。
- 在 Docker Console 中输入命令:
docker> wget LINK_ADDRESS
将 LINK_ADDRESS 替换成第二步中的链接地址
- 将文件解压到
into /usr/local
:
tar -C /usr/local -xzf go1.15.2.linux-amd64.tar.gz
- 将
/usr/local/go/bin
加入到PATH
环境变量中
export PATH=$PATH:/usr/local/go/bin
- 注意:profile 文件的该病可能并不会立马生效,若想立刻生效,输入:
source $HOME/.profile
- 验证 Go 是否安装成功,输入:
$ go version
- 确认该命令输出的 Go 版本
安装 Nebula Console
详细的 Console 介绍可参考文档:https://github.com/vesoft-inc/nebula-console
-
按照步骤安装 Golang:https://github.com/vesoft-inc/nebula-console
-
将 https://github.com/vesoft-inc/nebula-console clone 到 Docker 中并输入以下命令:
docker> cd nebula-console
docker> make
- 启动 Console:
docker> ./nebula-console [-address ip] [-port port] [-u user] [-p password] [-e "nGQL query statement" | -f file.nGQL]
# default setting
# user and password are optional
docker> ./nebula-console -u root -p nebula --port 3699 --addr="127.0.0.1"
你将看到欢迎信息,如下所示:
Welcome to Nebula Graph v2.0.0-alpha!
使用 VSCode 远程 Docker 容器
下面来介绍下如何用 VSCode 远程 Docker 容器,并在容器内浏览、编辑源码文件。
- 在 VSCode 中安装 Docker 插件
- 在 Linux 环境下,非 root 用户需要激活 Docker CLI 以运行 VSCode,详见 enable Docker CLI for the non-root user account。
- 打开插件窗 (⇧⌘X), 搜索
docker
并选择 Microsoft 开发的 Docker extension。
- 在 VSCode 中关联 Docker
2.1 打开 VSCode,点击侧边栏的 Docker,右键点击正在运行的容器,选择“Attach Visual Studio Code”
2.2 VSCode 文件浏览器将自动载入容器内的 Nebula Graph 路径
来开心地使用 VSCode Coding 吧~~
更多细节详见: https://code.visualstudio.com/docs/containers/overview.