来源: 宝塔面板Docker安装Solo博客 – 一款小而美的JAVA博客系统 – 大鸟博客
Solo 是一款小而美的博客系统,专为程序员设计。Solo 有着非常活跃的社区,文章自动推送到社区后可以让很多人看到,产生丰富的交流互动。
虽然大鸟不是程序员,但是还是很喜欢这个博客的,不过因为是Java开发,所以安装环境折腾起来有点门槛。
老规矩还是用宝塔面板来折腾,不过还是用Docker来部署,这也是官方推荐的安装方式。官方不建议通过 war 发布包或者源码构建部署,因为这样的部署方式在将来有新版本发布时升级会比较麻烦。 这两种方式请仅用于本地试用,线上生产环境建议通过 Docker 部署。大鸟还写过Solo博客的文章:
这篇文章就来分享宝塔面板下Docker安装Solo博客系统,这款小而美的博客程序。
一:solo简介
- 官网:https://solo.b3log.org/
- github:https://github.com/b3log/solo
- 下载地址:https://github.com/b3log/solo/releases
看起来功能上还是很简单的,不过够用就好。
二:安装docker + docker-compose
宝塔面板安装就不用多说了,我们开始安装docker,软件商店安装即可:
大鸟这里已经安装好了,没安装的自己安装。
宝塔面板没有自带docker-compose,所以需要自己命令环境下安装,Docker-Compose是一个部署多个容器的简单但是非常必要的工具,安装Docker-Compose之前,请先安装 python-pip 不过对于宝塔面板来说python-pip早已安装好了,所以宝塔面板安装Docker-Compose只需要一个命令就足够了,安装命令:
- pip install docker–compose
看看安装界面,以及安装完成的截图,这些需要SSH连接服务器进行操作:
安装了docker + docker-compose,我们还需要检查下,因为这是我们docker安装solo博客很关键的地方,检查命令:
- docker –v
- docker–compose –v
丢一张截图:
三:下载solo-in-docker以及编辑
项目地址:https://github.com/liumapp/solo-in-docker
可以用命令方式下载,或者用宝塔面板自带的远程下载来搞定,把下载的文件放在root
目录下,大鸟这类用git下载,命令如下:
- git clone https://github.com/liumapp/solo-in-docker.git
下载好之后,我们需要编辑/root/solo-in-docker
下的docker-compose.yml文件,完整编辑好文件如下:
- version: “2”
- services:
- mySQL:
- container_name: mySQL
- image: mySQL:5.5.60
- restart: always
- volumes:
- – ./mysql/data:/var/lib/mysql //mysql的数据文件存放地址
- – ./mysql/conf/mysqld.conf:/etc/mysql/mysql.conf.d/mysqld.cnf //mysql的配置文件存放地址
- ports:
- – “6603:3306” //6603代表宿主机端口,3306代编容器的端口
- environment:
- – MYSQL_ROOT_PASSWORD=adminadmin //mysql的root账号密码
- solo:
- container_name: solo
- image: b3log/solo //直接使用最新版本的solo镜像
- restart: always
- ports:
- – “8080:8080” //如果要部署到线上的话,请改为”80:80″,同时修改下面的–listen_port=80
- environment: //此处配置solo跟mysql的连接设置,来源为上面启动的mysql容器,如果要用自己的mysql服务,那么请将mysql的servcie去掉
- RUNTIME_DB: “MYSQL”
- JDBC_USERNAME: “root”
- JDBC_PASSWORD: “adminadmin”
- JDBC_DRIVER: “com.mysql.jdbc.Driver”
- JDBC_URL: “jdbc:mysql://mysql:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC” //此处,因为solo跟mysql同为docker容器,所以可以直接使用容器名 + 容器端口来访问
- command: —listen_port=8080 —server_scheme=http —server_host=www.daniao.org //按照solo官方要求,在solo启动之初,配置solo的域名、端口,如果是本地测试的话,将host改为localhost即可
四:开始部署和问题解决
配置好了,docker-compose.yml文件我就可以部署了,不过还是需要把solo-in-docker这个文件名修改成solo比较好,这样简单点,修改好之后,开始部署,命令如下:
- cd solo
- docker–compose up –d
开始用docker-compose自动部署镜像的时候,大鸟这里发现了错误,如下:
错误提示:80端口已经被占用,对于宝塔面板来说这应该nginx默认监听80端口所指,问题还是好解决的,路径:/www/server/panel/vhost/nginx
,找到0.default.conf
和phpfpm_status.conf
这两个文件修改其中的80端口即可,如图:
当然了,如果你默认用什么8383这样的端口,也无需去修改这里的文件了。这样修改好之后,我重新运行:docker-compose up -d
,即可成功启动solo了。
五:solo博客展示与使用
我们在docker上成功部署了solo,这样就可以通过域名打开网址了,额,域名别忘了解析哈,如图:
管理的用户名和密码就是github的账号和密码,初始我们需要登录github,之后就可以管理后台了,如图:
功能上来说非常简单,不过内置了19个皮肤,我们可以更换一个自己喜欢的。我们来试试发表文章:
功能上是很简单的,也很清爽,至于其他的功能喜欢折腾的自己去试试!
五:升级solo与一些细节
如果有更新,我还是需要在solo目录下运行:docker-compose up -d
,常用的命令如下:
启动命令
- docker–compose up –d
停止命令,可以停止网站运行。
- docker–compose down
查看solo日志的命令
- docker logs –t –f —tail 100 solo
我们丢一张图看看:
六:总结
- docker-compose 只是一个 docker 容器的编排工具,本质还是 docker 容器在运行
- 每一次命令 docker-compose 启动的时候,都会自动拉取最新 solo 的镜像,所以自动更新非常简单
- 数据备份问题,docker 容器死亡的时候,容器内数据会自动清除,除非我们使用 volumes 构建映射关系,这里我只将最重要的 mysql 数据库文件映射在 mysql/data 目录下
用宝塔面板来构建solo博客还是比较简单的,只是因为这个博客是在太小众,网上的资料基本看不懂,大鸟真的是折腾了好久,等真正吃到嘴的时候,发现味道也就如此,比如上街看到一个美女,穿着清凉性感的短装,你看见她的时候荷尔蒙飙升,非常想“马赛克”……
其实就像烤红薯,闻着香,吃到嘴里也就那样……
哈哈哈哈哈,我邪恶了……
貌似没有说怎么安装SSL证书,下次说吧,文章已经太长了,不一定有人能看完。