↑ 关注“少安事务所”公众号,欢迎⭐收藏,不错过精彩内容~
TL;DR
前文介绍了如何在 Rocky Linux 9 上安装 YashanDB 个人版,初体验过后,上点难度。
本文将介绍如何在本地环境,定制 Dockerfile 并自行构建 YashanDB 个人版的 Docker 镜像。
以及,基于该 Docker 镜像,启动两个容器,配置 YashanDB 的主备高可用。
本文篇幅略长,直接上干货,如有疑问,欢迎讨论。
定制 Dockerfile 构建 YashanDB 个人版镜像
这里就不赘述 Docker 的各种优势了,只是需要说明的是,本文使用的环境为 Rocky 9,docker 已经被 podman 所取代。
Dockerfile 的大体思路是:
-
以 CentOS 7 为基础镜像,安装几个常用软件包 -
创建 yashan
用户,后面的操作将在该用户下进行 -
下载 YashanDB 个人版的安装包,并解压 -
使用 YashanDB 个人版安装包里的脚本安装崖山数据库
具体 Dockerfile 内容如下:
FROM centos:7
LABEL maintainer="Shawn Yan"
# Install requirements.
RUN yum install -y wget iproute epel-release \
&& yum install -y rlwrap \
&& yum clean all
# Env.
ENV YASDB_PKG="yashandb-personal-23.1.1.100-linux-x86_64.tar.gz" YASDB_INSTALL=/tmp/yashan
# Create User
RUN useradd -u 2023 yashan \
&& echo "if command -v rlwrap >/dev/null 2>&1; then alias yasql='rlwrap yasql'; fi" >> /home/yashan/.bashrc
# Download YashanDB pkg.
RUN wget https://linked.yashandb.com/resource/$YASDB_PKG -P /tmp \
&& mkdir $YASDB_INSTALL \
&& tar zxf /tmp/$YASDB_PKG -C $YASDB_INSTALL \
&& rm -f /tmp/$YASDB_PKG
# Init.
RUN chown -R yashan:yashan $YASDB_INSTALL \
&& su -l yashan -c "$YASDB_INSTALL/scripts/install.sh" 2>&1 < /dev/null
# Mount
EXPOSE 1688
VOLUME ["/tmp"]
CMD ["/usr/sbin/init"]
使用 podman 构建镜像,调试 dockerfile 耗费了半天时间,skill 有些生疏了。
podman build -f Dockerfile -t shawnyan.cn/myyashan .
podman images

到此,YashanDB 个人版镜像已经制作完成。
由于某些原因,Docker Hub 的上载、下行网速实在堪忧,建议感兴趣、有需求的同学在本地自行构建镜像,会更快、高效。