使用 Docker 部署 Solo 博客系统

序言

为什么又搭建了一个博客呢?国内的高性能服务器,闲着也是闲着,还是多折腾一下吧!

Solo 博客系统是用 Java 语言开发的博客程序,具有优异的性能。这里使用 Docker 部署,也是官方推荐的部署方式,配合宝塔控制面板,搭建过程还是比较方便的。这里记录一下我的搭建过程以及使用 Solo 的一些总结。

Github 地址:b3log/solo: 🎸 一款小而美的博客系统,专为程序员设计。
官方网站:Solo - Java 博客系统,Java 开源博客系统

相关环境

服务器系统:CentOS Linux 7.6.1810
Nginx 版本:1.16.0
Mysql 版本:5.7.26
本地 SSH 连接工具:PuTTY Release 0.71

搭建过程

官方教程:Solo 用户指南 - 黑客派

这里我使用宝塔面板安装的 Nginx 和 Mysql,Mysql 数据库推荐 5.7 及以上。由于使用 Docker 部署,需要简单了解一下 Docker 的使用,推荐菜鸟教程:Docker 教程 | 菜鸟教程,我们可以在这里检索 Docker 的各版本的安装教程以及相关使用。

这里以 CentOS 为例,介绍从安装 Docker 到部署(可查看上面的官方教程的链接)Solo 的过程。

CentOS 安装 Docker

首先卸载旧版本 Docker:

sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-selinux \
                docker-engine-selinux \
                docker-engine

安装最新版 Docker

#安装必要的系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#添加软件源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum缓存
sudo yum makecache fast
#安装Docker-ce
sudo systemctl start docker
#测试是否安装成功
docker run hello-world

若能正常运行 hello-world,则表示 docker 以及成功安装好了。

使用宝塔面板新建一个网站

首先我们看一下官方的 Docker 搭建代码:

docker run --detach --name solo --network=host \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="123456" \
    --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=http --server_host=localhost --server_port=

启动参数说明:

  • –listen_port:进程监听端口
  • –server_scheme:最终访问协议,如果反代服务启用了 HTTPS 这里也需要改为 https
  • –server_host:最终访问域名或公网 IP,不要带端口
  • –server_port:最终访问端口,使用浏览器默认的 80 或者 443 的话值留空即可

这里我使用的是二级域名,域名为 article.zhyong.cn,暂不建立数据库。

然后我们可以申请 SSL 证书,直接在面板里申请即可,我申请的是 Let’s Encrypt 证书,并强制 HTTPS 访问。

然后在宝塔面板的数据库中手动添加数据库,根据 Solo 博客系统的数据库要求创建:创建数据库名称为 solo(或其它,对应位置修改 Docker 部署代码即可),字符集使用 utf8mb4,排序规则 utf8mb4_general_ci

然后部署我们的 Docker 代码:

docker run --detach --name solo --network=host \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    --env JDBC_PASSWORD="123456" \
    --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=True&serverTimezone=UTC" \
    b3log/solo --listen_port=8080 --server_scheme=https --server_host=article.zhyong.cn --server_port=

这样我们就成功使用 Docker 部署了 Solo 博客系统并启动了,接下来我们使用 Nginx 配置反向代理。

官方的 Nginx 反向代理代码:

upstream backend {
    server localhost:8080; # Solo 监听端口
}

server {
    listen       80;
    server_name  88250.b3log.org; # 博客域名,如我的就为 article.zhyong.cn

    access_log off;

    location / {
        proxy_pass http://backend$request_uri;
        proxy_set_header  Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        client_max_body_size  10m;
    }
}

这里我们仅需参考一下即可,因为我们使用宝塔面板时自动帮我们生成了 Nginx 的一些配置,我们手动修改小部分即可。

img

这样全部完成,现在就打开网站吧~

若出现问题,可以使用 Docker 删除容器再重新部署。

docker stop solo
docker rm solo

部署过程中遇到的问题:docker 启动代码中的 --server_host 必须使用对应的域名,否则打开网站报错!

使用感受及总结

总之,Solo 博客系统是非常优秀的,简单说一下我的感受。

最大的特色:小而美(我觉得介于 WordPress 和 Typecho 之间)

它是轻量级的,使用起来非常方便,后台使用 Github 账号登录管理,且连接官方黑客派的 Github 登录账号,这样,官方为我们个人博客内置了文件存储服务(Solo 内置 HTTPS + CDN 文件存储 - 黑客派),真的非常良心。后台管理时,不会刷新整个页面,以及拥有一个非常简洁美观的 Markdown 编辑器,内置了很多款美观大方的主题,可随意切换,并且手机端和电脑端可使用不同的主题(完爆自适应 =.=),并且内置了 30 + 代码高亮主题,可随意选择。

这里讲一下简单优化:

  1. 看板娘插件严重拖慢网站的访问速度,在工具 —— 插件管理中将其关闭
  2. 网站引用了 Github 头像,而此头像网址打开速度超慢甚至打不开,在工具 —— 用户管理中更新一下头像地址即可
  3. 代码高亮主题默认为 Github,此 js 文件打开速度过慢,暂改为 dracula

目前博客总体非常棒,内置的主题使用起来真的方便,美观、大方,加上内置的文件存储服务,棒棒棒~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker是目前比较流行的容器化技术,其优点在于方便管理和部署应用程序。而Halo博客系统是一款基于Java开发的博客系统,其部署过程比较复杂,需要安装JDK、MySQL等依赖。本文将介绍如何使用Docker部署Halo博客系统。 1. 安装Docker 首先需要在服务器上安装Docker,可以参考官方文档进行安装。 2. 创建Docker镜像 将Halo博客系统打包成Docker镜像,可以通过Dockerfile或者docker-compose.yml文件进行创建。在这里我们以Dockerfile为例。 先创建一个空目录,将Halo博客系统的jar包和配置文件拷贝到该目录下: ``` mkdir -p /opt/halo cp -r halo.jar /opt/halo/ cp -r application.properties /opt/halo/ ``` 然后创建Dockerfile: ``` FROM openjdk:8-jre-alpine MAINTAINER yourname <youremail@domain.com> ADD halo.jar /opt/halo/halo.jar ADD application.properties /opt/halo/application.properties WORKDIR /opt/halo CMD ["java", "-jar", "halo.jar", "--spring.config.location=application.properties"] EXPOSE 8888 ``` 其中FROM指定了基础镜像,ADD将jar包和配置文件拷贝到镜像中,WORKDIR指定工作目录,CMD指定应用启动命令,EXPOSE指定容器监听的端口。 使用docker build命令创建镜像: ``` docker build -t halo . ``` 其中halo为镜像名称,可以根据需要自行修改。 3. 启动容器 使用docker run命令启动容器: ``` docker run -d -p 8080:8888 --name halo-demo halo ``` 其中-d表示启动守护进程,-p将容器的8888端口映射到主机的8080端口,--name指定容器名称,halo为镜像名称。 启动成功后,在浏览器中输入http://localhost:8080访问Halo博客系统即可。 以上就是使用Docker部署Halo博客系统的步骤,相信通过这个实战,大家可以更好地了解云原生中Docker使用部署
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dylan、

耕码不易,白嫖可耻

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值