openGauss

开源数据库

openGauss社区官网

开源社区

在windows中使用容器化的mogeaver

DarkAthena2022-09-09openGauss

【openGauss】在 windows 中使用容器化的 mogeaver

前言

这是一个对目前某些暂时在 linux 专享的功能,在 windows 上实现的探索,不建议在生产中使用。

思路

  1. 目前 windows10/11 上支持搭建 docker 环境,而不需要使用 linux 虚拟机
  2. windows 上的 docker 可以借用 VcXsrv 或 xming 等 X11 工具,来将容器中的图形化界面显示到 windows 上
  3. mogeaver 的 linux 版本是用的 gtk 做的 GUI

所以,理论上,我们可以找个操作系统的 docker 镜像,装好 gtk 和 jdk 环境,把 linux 版本的 mogeaver 放进去,然后在 windows 上用 VcXsrv 设置一个显示器,启动容器,把容器的 dispaly 设置到 windows 上,就能在 windows 上使用 linux 版本的 mogeaver 了。

需要解决的问题

  1. 最好能找到一个带 gtk 环境的 docker 镜像,这样就不需要自己从头开始构建了(之前没接触过 gtk 开发,为了省时间。。。)
  2. 一般精简的 docker 镜像是没有中文字体支持的,因此 mogeaver 就也不能显示中文字体,而国内的 windows 的用户应该还是更愿意使用中文界面
  3. 默认在 mogeaver 中设置好 gs_dump/gsql 等客户端工具的目录,减少用户配置环境的操作
  4. 用户配置文件信息需要持久化到宿主机上,防止下次启动容器配置丢失
  5. 最好每次在用 mogeaver 时创建容器,关闭的时候自动删除容器,节约资源
  6. 默认 yum 仓库源有时候无法连接,需要有个备用源,否则可能构建镜像失败

半成品

项目地址: https://gitee.com/darkathena/mogeaver-docker


使用说明

  1. 先确保本地 windows 已安装 docker-desktop,并已经启动该服务

https://www.docker.com/get-started/

  1. 下载 VcXsrv

https://sourceforge.net/projects/vcxsrv/

  1. 安装 VcXsrv,一路下一步,然后打开 XLaunch,一路下一步
  2. 下载 mogdb 和 mogeaver 压缩包,放到本文件夹
wget https://cdn-mogdb.enmotech.com/mogeaver/22.1.5/mogeaver-ce-22.1.5-linux.gtk.x86_64.tar.gz
wget https://cdn-mogdb.enmotech.com/mogdb-media/3.0.1/MogDB-3.0.1-CentOS-x86_64.tar.gz
  1. 进入本目录,执行构建镜像命令
docker build -t mogeaver-docker:latest .
  1. 构建完成后,执行 run_mogeaver.bat 即可启动 mogeaver

个性化修改说明

  1. 默认用户配置路径在 d:\MogeaverData ,可以通过修改 run_mogeaver.bat 文件变更
  2. 默认 gs_dump 导出文件路径在 d:\dump_data ,可以通过修改 run_mogeaver.bat 文件变更
  3. 如果需要中文字体支持,请取消 dockerfile 中关于“Chinese font support”部分的注释
  4. 如果需要更换国内 yum 源,请取消 dockerfile 中关于“change yum repo”部分的注释

特点

  1. 已集成 openGauss 客户端命令行工具,比如 gsql/gs_dump 等,可以通过 mogeaver 相关功能调用
  2. 关闭程序即删除容器,节省内存资源

使用截图

  1. 构建

    image-1662550269020

  2. 软件打开界面 image-1662550350017

  3. 执行备份 image-1662550519565image-1662550700045

  4. 生成的文件 image-1662550744841

遗留问题

由于不明原因,一段时间不操作,容器版本的程序就会闪退。。。

后记

在做这个东西的时候,了解到了目前很多东西都可以容器化,后来又想到了,能不能封装一个 gs_dump.exe 调用 linux 容器中的 gs_dump,这样就能用 windows 版本的 mogeaver 来调用 gs_dump 了。以后有时间再看怎么弄吧。

  • 本文作者: DarkAthena
  • 本文链接: https://www.darkathena.top/archives/mogeaver-on-docker
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!