Windows利用Docker开发miniob

拉取github代码

找个文件夹Git Bash

# 将代码拉到本地
git clone https://github.com/oceanbase/miniob -b miniob_test

利用Dockerfile构建

用powershell运行

#到存放刚下载代码的文件夹(填写自己存放的路径)
cd /xxx/xxx
# build
docker build -t miniob .

build的时候有时候可能需要科学上网,也可以试试手机热点

镜像包含:

  • jsoncpp
  • google test
  • libevent
  • flex
  • bison(3.7)
  • gcc/g++ (version=11)
  • miniob 源码(/root/source/miniob)

docker中在/root/source/miniob目录下载了github的源码,可以根据个人需要,下载自己仓库的源代码,也可以直接使用git pull 拉取最新代码。 /root/source/miniob/build.sh 提供了一个编译脚本,以DEBUG模式编译miniob。

拉取Docker仓库

在此之前先启动Docker Desktop

docker pull oceanbase/miniob:latest

运行Docker

下载并启动miniob镜像,privileged 参数是为了方便在容器中进行调试。

docker run -d --name miniob --privileged oceanbase/miniob

进入到容器并进行开发

docker exec -it miniob bash

这个命令可以在终端上执行多次,开启多个窗口方便操作

建议

1.将代码放在自己的电脑上,Docker仅作为一个开发环境,启动镜像时这么做

docker run -d --name miniob --privileged -v $PWD/miniob:/root/miniob oceanbase/miniob

其中 -v $PWD/miniob:/root/miniob 是说将本地的 $PWD/miniob 目录映射到容器中的/root/miniob 目录,这里假设 $PWD/miniob 是你本地代码存放的位置,需要按照实际目录来调整。

代码放在自己的电脑上,好处是如果容器出现什么异常,自己最重要的数据不会丢失。

 2.启动镜像时忘记增加一些参数,但是又不想重新创建怎么办?

有时候启动镜像时(docker run),忘记增加一些参数,比如 privileged,但是又在容器中做了很多操作,对环境做了调整,不希望启动全新的容器,可以这么做:

提交当前的容器,创建新的镜像

docker commit -m 'commit message' -t miniob:vx miniob
docker stop miniob
docker rm miniob

启动新的镜像

docker run -d --name miniob xxxx miniob:vx

 参数中 miniob:vx 中的vx 是一个版本号,你可以自己设置,每次使用不同的名字即可。

官方文档出处:Windows 使用Docker开发MiniOB - MiniOB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/85968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue的详细教程--Vue路由与nodejs

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Vue的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.Vue路由是什么 二.使用Vue路由的步骤 1、…

vue使用其他组件弹窗(新增编辑)

1. 定义组件 import form from "../form/index.vue" //组件路径 export default {components: {WebSecurityLogForm: form, //引用组件},2. 使用组件 <!-- 表单 --><WebSecurityLogForm:open.sync"open" :id.sync"id" :disabled&quo…

[学习记录] 设计模式 3. 观察者模式

观察者模式 参考&#xff1a; bugstack 虫洞栈Refactoringhttps://www.cnblogs.com/myseries/p/8735490.htmlhttps://www.jianshu.com/p/4f1cd513a72d 当一个行为发生时传递信息给另外一个用户接收做出相应的处理&#xff0c;两者之间没有直接的耦合关联。 在我们编程开发中也…

Hutool工具包:http客户端工具(使用教程)

目录 一、Hutool介绍 二、笔者的话 三、引入依赖 四、大致步骤 五、GET请求 5.1 代码 5.2 结果展示 六、POST请求 6.1 代码一&#xff08;Form Data类型参数&#xff09; 6.2 结果展示 6.3 代码二&#xff08;Form Data类型参数 - 含上传文件&#xff09; 6.4 结果…

开发高性能知识付费平台:关键技术策略

引言 在构建知识付费平台时&#xff0c;高性能是确保用户满意度和平台成功的关键因素之一。本文将探讨一些关键的技术策略&#xff0c;帮助开发者打造高性能的知识付费平台。 1. 前端性能优化 使用CDN加速资源加载 使用内容分发网络&#xff08;CDN&#xff09;来托管和加…

服务器搭建(TCP套接字)-select版(服务端)

一、select头文件 #include <sys/select.h>二、select原型 int select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);select() 是一个系统调用函数&#xff0c;用于在多个文件描述符上进行 I/O 多路复用。通过 select() …

JavaWeb后端开发 JWT令牌解析 登录校验 通用模板/SpringBoot整合

目录 实现思路 会话跟踪的三个方案--引出Jwt令牌技术 1.访问cookie的值,在同一会话的不同请求之间共享数据 2.session 3.现代普遍采用的令牌技术--JWT令牌 JWT令牌技术 ​第一步--生成令牌 1.引入依赖 2.生成令牌 第二步--校验令牌 第三步--登录下发令牌 需要解决的…

黑马JVM总结(二十三)

&#xff08;1&#xff09;字节码指令-init 方法体内有一些字节&#xff0c;对应着将来要由java虚拟机执行方法内的代码&#xff0c;构造方法里5个字节代码&#xff0c;main方法里有9个字节的代码 java虚拟机呢内部有一个解释器&#xff0c;这个解释器呢可以识别平台无关的字…

四种自动化测试模型实例及优缺点

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; 一&#xff0c;线性测试 1.概念&#xff1a; 通过录制或编写对应应用程序的操作步骤产生的线性脚本。单…

分工是财富的秘密

友情提示&#xff1a;这是一篇干货&#xff0c;需要深度阅读 前几天&#xff0c;我看到一个做自媒体的大 V 说了这么一个观点&#xff1a;分工是财富的秘密。 然后&#xff0c;我根据这句话&#xff0c;自己做了点引申。 分工是财富的秘密。分工越细&#xff0c;赚钱机会越多&a…

OpenGL之坐标系统

将坐标变换为标准化设备坐标&#xff0c;接着再转化为屏幕坐标的过程通常是分步进行的&#xff0c;也就是类似于流水线那样子。在流水线中&#xff0c;物体的顶点在最终转化为屏幕坐标之前还会被变换到多个坐标系统(Coordinate System)。将物体的坐标变换到几个过渡坐标系(Inte…

从Python代码到诗

&#x1f433;序言 在Python社区&#xff0c;没有强制的编码标准&#xff0c;这虽然赋予了开发者更多的自由&#xff0c;但也导致代码风格不一致性。使得部分代码变得晦涩难懂&#xff0c;本文将探讨一系列的开发技巧和最佳实践&#xff0c;开发出优雅的Python脚本。 1、参数接…

ElasticSearch(三)

1.数据聚合 聚合&#xff08;aggregations&#xff09;可以让我们极其方便的实现对数据的统计、分析、运算。例如&#xff1a; 什么品牌的手机最受欢迎&#xff1f; 这些手机的平均价格、最高价格、最低价格&#xff1f; 这些手机每月的销售情况如何&#xff1f; 实现这些…

laravel框架 - 消息队列如何使用

业务场景&#xff1a;项目里边有很多视频资源需要上传到抖音资源库&#xff0c;通过队列一条一条上传。 参考实例&#xff1a;发送邮件&#xff0c;仅供参考 (1)创建任务【生成任务类】 在你的应用程序中&#xff0c;队列的任务类都默认放在 app/Jobs 目录下。如果这个目录不存…

解决ubuntu系统python2.7安装uwsgi报错

背景 因为项目老旧&#xff0c;仍需使用python2.7&#xff0c;仍需要使用pip2 安装依赖。在安装uwsgi的时候&#xff0c;报错。 错误一 Building wheel for uwsgi (setup.py) ... error ERROR: Command errored out with exit status 1: command: /usr/bin/python2 -u -…

vulhub打靶第三周

第三周 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/chronos-1,735/ 环境折磨导致做晚了&#xff0c;再加上期末的考试多耽搁下来了&#xff0c;然后就是辗转反侧打比赛&#xff0c;拖了这么久&#xff0c;时隔三个月重新开打 因为陆陆续续打了两次&#xff0c;所…

【Java】Java中对List进行排序

探讨几种Java对List进行排序的方法。 使用Collections.sort()方法 Java中的Collections.sort()方法是对List进行排序的最常用方法。它使用TimSort算法&#xff08;是一种稳定的&#xff0c;基于合并的排序算法&#xff0c;是插入排序和归并排序的混合体&#xff09;&#xff…

[winerror 5] 拒绝访问。: ‘..\\data‘解决方案

使用Jupyter Notebook学习深度学习时出现错误如下&#xff1a;[winerror 5] 拒绝访问。: ‘…\data’ 解决方法&#xff1a; 打开anaconda3找到对应环境的python.exe 点开属性&#xff0c;点安全&#xff0c;选择如下&#xff1a; 点编辑&#xff0c;选择User&#xff0c;勾…

9、DVWA——XSS(Stored)

文章目录 一、存储型XSS概述二、low2.1 源码分析2.2 通关分析 三、medium3.1 源码分析3.2 通关思路 四、high4.1 源码分析4.2 通关思路 一、存储型XSS概述 XSS&#xff0c;全称Cross Site Scripting&#xff0c;即跨站脚本攻击&#xff0c;某种意义上也是一种注入攻击&#xff…

Touch命令使用指南:创建、更新和修改文件时间戳

文章目录 教程&#xff1a;touch命令的使用指南一、介绍1.1 什么是touch命令&#xff1f;1.2 touch命令的作用1.3 touch命令的语法 二、基本用法2.1 创建新文件2.2 更新文件时间戳2.3 创建多个文件2.4 修改文件访问时间2.5 修改文件修改时间2.6 修改文件创建时间 三、高级用法3…