前言

Halo 作为一款好用又强大的开源建站工具,配合上不同的模板与插件,可以很好地帮助你构建你心中的理想站点。它可以是你公司的官方网站,可以是你的个人博客,也可以是团队共享的知识库,甚至可以是一个论坛、一个商城。

官方网址:https://www.halo.run/

下载

拉取halo官方镜像

docker pull registry.fit2cloud.com/halo/halo:2.21

安装mysql数据库

Halo默认使用H2数据库,会存在一些问题,于是我们切换成常用的mysql数据库

拉取mysql镜像

m

启动容器

docker run -d \
  --name mysql \
  -e MYSQL_ROOT_PASSWORD=<root密码>\
  -p 3306:3306 \
  -v /volume1/docker/mysql/data:/var/lib/mysql \
  -v /volume1/docker/mysql/conf:/etc/mysql/conf.d \
  --restart unless-stopped \
  mysql:5.7

配置数据库与用户

#进入容器
docker exec -it <mysql容器名> /bin/sh

#登录root用户
mysql -uroot -p密码

#建halodb专用库
CREATE DATABASE halodb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

#创建halo用户,平时少用root
CREATE USER 'halo'@'%' IDENTIFIED BY '此用户对应的密码';

#赋予halo用户使用halodb的所有权限
GRANT ALL PRIVILEGES ON halodb.* TO 'halo'@'%' IDENTIFIED BY 'halo用户的密码';

#刷新权限
FLUSH PRIVILEGES;

有用的TIPs:

#列出所有数据库
SHOW DATABASES;

#查看所有mysql用户
SELECT User, Host FROM mysql.user;

#修改用户密码
ALTER USER '<用户名>'@'%' IDENTIFIED BY '<新密码>';

配置并运行halo

  docker run -d --name halo \
  -p 8090:8090 \
  -v /volume1/docker/halo:/root/.halo2 \
  -e SPRING_R2DBC_URL="r2dbc:pool:mysql://mysql:3306/halodb" \
  -e SPRING_R2DBC_USERNAME=halo \
  -e SPRING_R2DBC_PASSWORD="haloRT123" \
  -e SPRING_SQL_INIT_PLATFORM=mysql \
  -e HALO_EXTERNAL_URL="http://192.168.110.79:8090" \
  --restart unless-stopped \
  --link mysql:mysql \
  registry.fit2cloud.com/halo/halo:2.21