miniob项目部署
Docker部署
官方提供两种部署方式,可以本地部署也可以通过docker部署,docker可以一键部署,不需要配置环境,故采用docker部署。
- 官网下载docker
- 一键部署 docker run oceanbase/miniob
- 第一次run的时候docker会自动去仓库下载miniob镜像
- 镜像中存在一份miniob源码,但建议本地拉取一份后挂载在docker容器中运行(方法和原因在后面)
- 编译:执行文件中的build.sh即可
VScode运行+调试
- 首先我们需要从github上拉取一份最新的代码到本地 git clone https://github.com/oceanbase/miniob.git
- 新建一个容器并将本地代码挂载到该容器中运行
- 原因1:在docker镜像中的代码不是最新的
- 原因2: 我在docker中使用gitpush代码到githua远程仓库失败,导致后续无法提测
- 方法:在本地拉取一份代码,运行在docker中,在docker中编辑和调试,可实现与本地文件的关联,然后在本地文件中push即可(也可能有更好的方式)
- 挂载方式新建一个新容器:docker run -it -v /usr/lyjps/miniob:/lyjps oceanbase/miniob 注:-v表示挂载,:前面表示本地文件目录,:后面表示你要在docker 容器中挂载的位置(随意,没有该目录也会新建)
- 打开vscode并下载docker插件,然后可以看到我们正在运行的容器,然后将容器关联到vscode,打开我们刚才挂载位置的文件即可
- 如何单步调试:需要在.vscode目录下配置launch.json和tasks.json
- launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/bin/observer",
"args": ["-f", "../../etc/observer.ini"],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "CMake Build"
}
]
}
- tasks.json
{
"options": {
"cwd": "${workspaceFolder}/build"
},
"tasks": [
{
"label": "cmake",
"command": "cmake",
"args": [
"-DDEBUG=ON",
".."
]
},
{
"label": "make",
"command": "make"
},
{
"label": "CMake Build",
"dependsOn": [
"cmake",
"make"
]
}
],
"version": "2.0.0"
}
- 如何测试
- 首先每次需要本地编译文件 ./build.sh
- 然后打开observe ./bin/observer -s miniob.sock -f ../etc/observer.ini &
- 打开obclient ./bin/obclient -s miniob.sock
- 然后在client中输入sql测试即可
- 如何提测
- 本地调试测试完成后将代码push到远程仓库
- 在miniob提测页面提交github仓库地址即可
理想主义的花终将在现实中绽放

浙公网安备 33010602011771号