1 Star 0 Fork 1

万里数据库/GreatSQL-Shell-Docker

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

GreatSQL-Shell Docker


介绍

GreatSQL Shell相关Docker镜像集。

Dockerfiles可用于自定义和构建Docker镜像。戳此阅读更多关于Dockerfiles的文档

我们非常欢迎和鼓励社区用户提出改进建议或贡献代码、想法,以及其他任何可以帮助改进项目的做法。

如果您发现任何GreatSQL-Shell Docker项目相关的问题、bug,都可以戳此提交issue,我们将尽快处理。

基本信息

支持哪些tag

如何使用GreatSQL-Shell镜像

例如:

$ docker run -itd --hostname greatsqlsh --name greatsqlsh greatsql/greatsql_shell_build:8.0.32-25 bash

执行上述命令后,会创建一个GreatSQL-Shell编译环境容器,在容器中会自动进行GreatSQL-Shell编译工作。

在编译过程中,可以执行下面命令查看进度:

$ docker logs greatsqlsh | tail

如果看到类似下面的结果,就表明二进制包已编译完成

$ docker logs greatsqlsh | tail
1. extracting tarballs
2. compiling antlr4
3. compiling patchelf
4. compiling rpcsvc-proto
5. compiling protobuf
6. compiling greatsql shell
/opt/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64/bin/mysqlsh   Ver 8.0.32 for Linux on x86_64 - for MySQL 8.0.32 (Source distribution)
7. MySQL Shell 8.0.32-25 for GreatSQL build completed! TARBALL is:
-rw-r--r-- 1 root root 20343832 Jan 20 21:41 greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64.tar.xz

接下来回退到宿主机,将容器中的二进制包拷贝出来

$ docker cp greatsqlsh:/opt/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64.tar.xz /usr/local/

然后解压缩,就可以在宿主机环境下使用了,例如:

$ /usr/local/greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64/bin/mysqlsh
MySQL Shell 8.0.32
...
Type '\help' or '\?' for help; '\quit' to exit.
 MySQL  Py > \q
Bye!

提醒:如果是在aarch64环境中,则修改Dockerfile的前几行,改成适用于aarch64的镜像,例如

#for x86_64
#FROM centos:8

#for aarch64
FROM docker.io/arm64v8/centos

然后执行上面创建容器的命令即可。

手动编译GreatSQL Shell

如果您想自行手动编译GreatSQL Shell,详情可参考文档:MySQL Shell 8.0.32 for GreatSQL编译二进制包。或者参考下面的简易过程说明:

  1. 在Dockerfile中有个COPY greatsql_shell_docker_build.tar /opt的动作,需要自行打包 greatsql_shell_docker_build.tar 文件包,主要由一下几个文件组成:

其中,几个在github上的文件需要科学上网才能下载。此外,在文档 MySQL Shell 8.0.32 for GreatSQL编译二进制包 中有提到,antlr4源码包中的runtime/Cpp/runtime/CMakeLists.txt文件第一行要注释掉并重新打包,否则编译时要去github上下载文件,会导致编译失败。

  1. 上述 greatsql_shell_docker_build.tar 文件包准备好后,按照下面步骤开始编译工作。
    1. 略过Docker的安装过程,直接调用 greatsql-shell-docker-build.sh 脚本开始自动编译工作。
    1. 调用脚本时的第一个参数用于自定义CPU架构,目前支持 x86_64aarch64 两种,若参数值为 aarch64 之外的任何值,都会被当做 x86_64 处理。
    1. 脚本 greatsql-shell-docker-build.sh 会开始自动构建 greatsql_shell_build 镜像。
    1. 在构建完 greatsql_shell_docker_build 镜像后,还会自动创建新容器完成编译。
    1. 编译结束后会输出编译结果,并将编译得到的二进制包拷贝到当前目录下。
$ sh ./greatsql-shell-docker-build.sh ./greatsql_shell_docker_build.tar

1. Docker images **greatsql_shell_build** build start
Sending build context to Docker daemon  2.469GB
...
Docker build success!
...

2. Creating docker container to buile GreatSQL Shell
...
GreatSQL Shell on builing ...
...

3. Copy GreatSQL-Shell TARBALL to the current directory
...
-rw-r--r-- 1 root root 20346808 Jan 22 13:28 greatsql-shell-8.0.32-25-centos-glibc2.28-x86_64.tar.xz

然后解压缩,就可以在宿主机环境下使用GreatSQL Shell了。

注意:采用本方法构建的GreatSQL Shell是适用于CentOS 8(glibc 2.28)环境下运行的,宿主环境如果是其他操作系统(或glibc版本不一致)可能无法正常运行。

文件介绍

  • Dockerfile,用于构建Docker编译环境
  • greatsql-shell-build.sh,用于实现在Docker容器中自动化编译的脚本
  • greatsql-shell-docker-build.sh,用于自动构建Docker编译环境并自动编译GreatSQL-Shell的脚本
  • mysqlsh-for-greatsql-8.0.32.patch,需要对MySQL Shell打补丁,才能支持GreatSQL中特有的仲裁节点特性

联系我们

扫码关注微信公众号

GreatSQL社区微信公众号二维码

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Docker
1
https://gitee.com/GreatSQL/GreatSQL-Shell-Docker.git
git@gitee.com:GreatSQL/GreatSQL-Shell-Docker.git
GreatSQL
GreatSQL-Shell-Docker
GreatSQL-Shell-Docker
master

搜索帮助