目前 solo 从 3.6.7 版本开始已经不提供 war 包部署了,对于一直是下载 war 包部署的我,有点儿一时间不知所措,研究了几天,成功用最简单的方式用上了最新版,开始:
1 环境
我用的是腾讯云,系统是 Centos 7.5,系统集成了一个自带的宝塔面板,可以通过重装系统达到这个要求。
在服务器安全组开放 8888 宝塔面板访问端口,在通过 http://{服务器 ip}:8888 访问面板进入到面板主页(账号和密码按提示操作就能获取到),会提示安装一堆组件,我选择安装 Nginx 1.16,MySQL 5.7,其他的不用安装。
打开宝塔面板软件商店,安装 Docker 管理器 2.2,最终需要安装的软件这里截图一个:
2 搭建 solo
2.1 新建数据库
直接上图:
这里的密码是面板随机分配的,可以保持默认。
2.2 拉取 solo 镜像
打开 Docker 管理器 2.2,获取镜像,直接上图:
2.3 创建容器
这里使用的是命令行创建镜像,通过 SSH 连接上服务器,运行命令:
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="solo" \
--env JDBC_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=8585 --server_scheme=http --server_host=solo.kangaroohy.top --server_port=
启动参数说明(参考 solo 用户指南):
--listen_port
:进程监听端口--server_scheme
:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为https
--server_host
:最终访问域名或公网 IP,不要带端口--server_port
:最终访问端口,使用浏览器默认的 80 或者 443 的话值留空即可
这里我的服务器监听端口 --listen_port
是 8585,你可以改成自己想要的。
注:
- 此处
--listen_port
端口不能 80,不然会和 nginx 默认监听端口(也就是--server_port
)冲突,会报 400 错误。
容器创建成功后,返回到宝塔面板,进去 Docker 管理器 2.2,查看 solo 容器是否创建成功。
2.4 反向代理
在宝塔面板新建一个网站,如图:
其他的默认即可,提交以后,就完成网址的创建。
点击设置,修改站点设置如图:
注:
请把域名解析到服务器。
至此,反向代理完成。
打开网址:http://solo.kangaroohy.top , 熟悉的画面它来了。
2.5 SSL
可以在步骤 2.4 中选择 ssl,顺便把 ssl 配上,里边有免费的可供使用,按操作来就行了。
当然,如果要升级 SSL,需要在创建容器的时候,需要指定 --server_scheme=https
,如果遇到在宝塔里申请 SSL 失败,可以去阿里云或者腾讯云申请免费的 SSL,然后在宝塔里设置就好了,如图:
3 补充
3.1 皮肤挂载
参考这里:从零开始安装 solo 博客
# 切换到服务器根目录
cd /
# 创建主目录
mkdir dockerData
我的目录和这篇里的一样,/dockerData/solo/skins/
,然后把中意的皮肤挂载到这个目录下,我挂载了 4 个皮肤,如下:
删掉之前的 solo 容器,重新创建容器
# 停掉solo
docker stop solo
# 删除容器
docker rm solo
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="solo" \
--env JDBC_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" \
--volume /dockerData/solo/skins/:/opt/solo/skins/ \
b3log/solo --listen_port=8585 --server_scheme=http --server_host=solo.kangaroohy.top --server_port=
在之前的基础上,新加了一个皮肤挂载 --volume /dockerData/solo/skins/:/opt/solo/skins/
3.2 Docker
docker 常用命令:Docker 容器操作 常用命令
好了,是时候去迁移数据库信息了。。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于