Ubuntu 20.04.6 Server部署Halo博客系统
说明:之前使用的 hexo 博客系统,由于受 Github 网络条件限制,外加存储介质和数据安全性的问题,综合考虑后切换至 WordPress,后续因使用过程中发现 WordPress 的优秀主题板块自定义度极高,超越需求及自身能力,故寻找到目前比较好使的 Halo 系统,现进行部署记载。
Halo Github:https://github.com/halo-dev/halo
Halo 官网:https://www.halo.run
Halo Dockerhub:https://hub.docker.com/r/halohub/halo
1.dcoker compose方式启动.yaml文件编写
Halo 官网给的使用手册如下

实际个人编写.yaml 文件如下,如需使用此配置,可下载

services:
halo:
image: registry.fit2cloud.com/halo/halo:2
restart: unless-stopped
depends_on:
halodb:
condition: service_healthy
networks:
halo:
volumes:
- /opt/halo/halo2:/root/.halo2
ports:
- "1002:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
environment:
# JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
- JVM_OPTS=-Xms1G -Xmx1G
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=password
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=https://blog.19950628.xyz
halodb:
image: mysql:8.1.0
restart: unless-stopped
networks:
halo:
command:
- --default-authentication-plugin=caching_sha2_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
volumes:
- /opt/halo/mysql/mysql:/var/lib/mysql
- /opt/halo/mysql/mysqlBackup:/data/mysqlBackup
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 3s
retries: 5
start_period: 30s
environment:
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=halo
networks:
halo:
2.建立数据持久化存放路径,并启动Halo容器
在 /opt路径下,新建容器数据持久化文件夹,以容器名称命名该文件夹 halo

刷新检查

因为此 compose 有两部分的容器,需要配合使用,在使用 Halo 容器时,前提是需要依赖 MySQL 数据库容器,所以再在 /opt/halo下,分别新建 halo2和 mysql文件夹

刷新检查

因在 compose 配置的过程中对 MySQL 数据库进行了备份,目的是为了容灾,故这里再次进行了细分,主库存放在 mysql 文件夹,备库存放在 mysqlBackup

刷新检查

上传 halo_compose.yaml 至 /opt/halo 下


切换路径至文件所在处,启动容器
docker compose -f halo_compose.yaml up -d




3.初始化Halo容器
容器登录方式:服务器IP:1002,这里是内网 IP:192.168.1.4,则实际登录地址为:192.168.1.4:1002




评论