宝塔面板Docker安装Solo博客 – 一款小而美的JAVA博客系统

2019年5月7日 8 6,657 3460字阅读11分32秒

Solo 是一款小而美的博客系统,专为程序员设计。Solo 有着非常活跃的社区,文章自动推送到社区后可以让很多人看到,产生丰富的交流互动。

虽然大鸟不是程序员,但是还是很喜欢这个博客的,不过因为是Java开发,所以安装环境折腾起来有点门槛。

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

老规矩还是用宝塔面板来折腾,不过还是用Docker来部署,这也是官方推荐的安装方式。官方不建议通过 war 发布包或者源码构建部署,因为这样的部署方式在将来有新版本发布时升级会比较麻烦。 这两种方式请仅用于本地试用,线上生产环境建议通过 Docker 部署。大鸟还写过Solo博客的文章:

这篇文章就来分享宝塔面板下Docker安装Solo博客系统,这款小而美的博客程序。

一:solo简介

  1. 官网:https://solo.b3log.org/
  2. github:https://github.com/b3log/solo
  3. 下载地址:https://github.com/b3log/solo/releases

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

看起来功能上还是很简单的,不过够用就好。

二:安装docker + docker-compose

2.1docker安装

宝塔面板安装就不用多说了,我们开始安装docker,软件商店安装即可:

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

大鸟这里已经安装好了,没安装的自己安装。

2.2docker-compose

宝塔面板没有自带docker-compose,所以需要自己命令环境下安装,Docker-Compose是一个部署多个容器的简单但是非常必要的工具,安装Docker-Compose之前,请先安装 python-pip  不过对于宝塔面板来说python-pip早已安装好了,所以宝塔面板安装Docker-Compose只需要一个命令就足够了,安装命令:

pip install docker-compose

看看安装界面,以及安装完成的截图,这些需要SSH连接服务器进行操作:

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

2.3检查web环境

安装了docker + docker-compose,我们还需要检查下,因为这是我们docker安装solo博客很关键的地方,检查命令:

docker -v
docker-compose -v

丢一张截图:

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

三:下载solo-in-docker以及编辑

3.1下载solo-in-docker

项目地址:https://github.com/liumapp/solo-in-docker

可以用命令方式下载,或者用宝塔面板自带的远程下载来搞定,把下载的文件放在root目录下,大鸟这类用git下载,命令如下:

git clone https://github.com/liumapp/solo-in-docker.git

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

3.2编辑docker-compose.yml文件

下载好之后,我们需要编辑/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安装Solo博客 - 一款小而美的JAVA博客系统

开始用docker-compose自动部署镜像的时候,大鸟这里发现了错误,如下:

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

错误提示:80端口已经被占用,对于宝塔面板来说这应该nginx默认监听80端口所指,问题还是好解决的,路径:/www/server/panel/vhost/nginx,找到0.default.confphpfpm_status.conf这两个文件修改其中的80端口即可,如图:

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

当然了,如果你默认用什么8383这样的端口,也无需去修改这里的文件了。这样修改好之后,我重新运行:docker-compose up -d,即可成功启动solo了。

五:solo博客展示与使用

我们在docker上成功部署了solo,这样就可以通过域名打开网址了,额,域名别忘了解析哈,如图:

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

管理的用户名和密码就是github的账号和密码,初始我们需要登录github,之后就可以管理后台了,如图:

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

功能上来说非常简单,不过内置了19个皮肤,我们可以更换一个自己喜欢的。我们来试试发表文章:

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

功能上是很简单的,也很清爽,至于其他的功能喜欢折腾的自己去试试!

五:升级solo与一些细节

如果有更新,我还是需要在solo目录下运行:docker-compose up -d,常用的命令如下:

启动命令

docker-compose up -d

停止命令,可以停止网站运行。

docker-compose down

查看solo日志的命令

docker logs -t -f --tail 100 solo

我们丢一张图看看:

宝塔面板Docker安装Solo博客 - 一款小而美的JAVA博客系统

六:总结

  1. docker-compose 只是一个 docker 容器的编排工具,本质还是 docker 容器在运行
  2. 每一次命令 docker-compose 启动的时候,都会自动拉取最新 solo 的镜像,所以自动更新非常简单
  3. 数据备份问题,docker 容器死亡的时候,容器内数据会自动清除,除非我们使用 volumes 构建映射关系,这里我只将最重要的 mysql 数据库文件映射在 mysql/data 目录下

用宝塔面板来构建solo博客还是比较简单的,只是因为这个博客是在太小众,网上的资料基本看不懂,大鸟真的是折腾了好久,等真正吃到嘴的时候,发现味道也就如此,比如上街看到一个美女,穿着清凉性感的短装,你看见她的时候荷尔蒙飙升,非常想“马赛克”……

其实就像烤红薯,闻着香,吃到嘴里也就那样……

哈哈哈哈哈,我邪恶了……

貌似没有说怎么安装SSL证书,下次说吧,文章已经太长了,不一定有人能看完。

继续阅读
  • 我的微信
  • 分享宝塔面板建站技术交流等!
  • weinxin
  • 微信公众号
  • 关注本博公众号
  • weinxin
  • 文本由 发表于 2019年5月7日
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:8   其中:访客  7   博主  1
    • avatar 奶爸de笔记 @回复 6

      我不管,wp才是最好的。

      • avatar emorsl @回复 6

        宝塔不是可以一键部署SSL吗

          • avatar 大鸟 @回复 6

            @emorsl Solo博客和常规的网站不太一样,需要反代来申请ssl证书!

          • avatar frank @回复 0

            有个问题,在目录/root/solo-in-docker下没有docker-compose.yml这个文件,只有在http https里各有一个这样的文件。

              • avatar 大鸟 Admin @回复

                @frank 啥意思啊docker-compose.yml这个文件是要自己下载的,我文章里面是下载到root目录下,其实你随便下载到什么目录,运行的时候只要定位到这个目录下,然后运行就可以了。