宝塔部署最新版 Solo 博客,并每天自动更新升级。
基础环境
- 宝塔
- Mysql
- Docker
以上为基础环境,怎么搭建基础环境就不再赘述了
新建站点、数据库
在网站中新建站点,填入域名,选择创建数据库。
记录数据库相关配置
配置计划任务
在计划任务中,添加新的计划任务,选择 Shell 脚本,执行周期按照自己的需求更改,我这里是每天
然后在脚本内容中填入如下配置:
#!/bin/bash
#
# Solo docker 更新重启脚本
#
# 1. 请注意修改参数
# 2. 可将该脚本加入 crontab,每日凌晨运行来实现自动更新
#
restart_solo(){
docker stop solo
docker rm solo
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="you mysql user" \
--env JDBC_PASSWORD="you mysql user password" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
b3log/solo --listen_port=8080 --server_scheme=https --server_host=you domain
}
update_solo(){
echo "Pulling Solo's image"
isUpdate=$(docker pull b3log/solo | grep "Downloaded")
if [[ -z $isUpdate ]]
then
echo "Solo is up to date"
else
restart_solo >> /dev/null 2>&1
echo "Restarted Solo"
fi
}
# 检查当前容器状态,如果状态正常进行升级操作,否则重新进行部署
update_and_test_service(){
isCrash=$(docker ps | grep "b3log/solo")
if [[ -z $isCrash ]]
then
echo "Solo's status is unexpected, trying to restart it"
docker pull b3log/solo
restart_solo
sleep 5
isSecondCrash=$(docker ps | grep "b3log/solo")
if [[ -z $isSecondCrash ]]
then
echo "Failed to restart Solo, please check logs via 'docker logs solo'"
fi
else
update_solo
fi
}
update_and_test_service
注意修改以上配置中的数据库相关配置为自己的配置,端口 8080 如果占用,请修改成其他的,server_host 中填入自己的域名
配置 Nginx
配置 HTTPS/SSL
配置反代
如果需要配置 https 的,首先配置 https 证书,否则会有冲突。
新建反向代理,按照以上示例填写。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于