单体部署②——MySQL更新工具
# 单体部署②——MySQL更新工具
Tips
本镜像主要是为了跟随HOJ主仓库更新,使用固定镜像来检查是否有更新,以达到MySQL数据库的平滑升级
# 一、用已有的HOJ镜像部署
可以直接在已有的docker-compose.yml添加以下模块即可,本容器检查完是否有更新就会正常退出
hoj-mysql-checker:
image: registry.cn-shenzhen.aliyuncs.com/hcode/hoj_database_checker
container_name: hoj-mysql-checker
depends_on:
- hoj-mysql
links:
- hoj-mysql:mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-hoj123456} # mysql的数据库密码
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 二、自己打包镜像部署
首先 先下载hoj-deploy (opens new window) 然后进入对应的镜像打包文件夹
git clone https://gitee.com/himitzh0730/hoj-deploy.git && cd hoj-deploy/src/mysql-checker
1
当前文件夹为打包hoj-mysql-checker
镜像的相关文件,只需将这些文件复制到同一个文件夹内,之后执行以下命令进行打包成镜像。
docker build -t hoj-mysql-checker .
1
docker-compose启动
version: "3"
services:
hoj-mysql-checker:
#image: registry.cn-shenzhen.aliyuncs.com/hcode/hoj_database_checker
image: hoj-mysql-checker # 自己的镜像名称
container_name: hoj-mysql-checker
depends_on:
- hoj-mysql
links:
- hoj-mysql:mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-hoj123456} # mysql的数据库密码
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
文件介绍
# 1. hoj-update.sql
此文件为检查更新的sql脚本
# 2. update.sh
此文件为执行脚本
#!/bin/sh
mysql -h mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "select version();" &> /dev/null
RETVAL=$?
while [ $RETVAL -ne 0 ]
do
sleep 3
mysql -h mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "select version();" &> /dev/null
RETVAL=$?
done
mysql -uroot -h mysql -p$MYSQL_ROOT_PASSWORD -D hoj -e "source /sql/hoj-update.sql"
echo 'Check whether the `hoj` database has been updated successfully!'
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 3. Dockerfile
FROM arey/mysql-client
COPY ./hoj-update.sql /sql/
COPY ./update.sh /sql/
ENTRYPOINT ["/bin/sh", "/sql/update.sh"]
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8