搭建Halo博客
折腾了蛮久的typecho,但是遇到了坑人的点,就是typecho后台登录会重写url 导致nginx配置的转发有问题。所以放弃了。因为docker容器很方便环境的管理和迁移,还有搭配docker-compose 来启动关联的服务相当的便捷。所以选择了docker-compose来一键部署halo博客。
docker-compose 文件
version: "3.7"
services:
halo:
image: halohub/halo:2.2.0
container_name: halo
restart: on-failure:3
depends_on:
- halodb
networks:
halo_network:
volumes:
- ./halodata:/root/.halo2
ports:
- "18080:8090"
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=xxxx
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=https://xxx.xx.com
# 初始化的超级管理员用户名
- --halo.security.initializer.superadminusername=xxxxxxx
# 初始化的超级管理员密码
- --halo.security.initializer.superadminpassword=xxxxxxx
halodb:
image: mysql:8.0.31
container_name: halodb
restart: on-failure:3
networks:
halo_network:
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
volumes:
- ./mysql:/var/lib/mysql
- ./mysqlBackup:/data/mysqlBackup
ports:
- "13306:3306"
environment:
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
- MYSQL_ROOT_PASSWORD=xxxxxx
- MYSQL_DATABASE=xxxxx
networks:
halo_network:
docker-compose文件参考自官方文档: https://docs.halo.run/getting-started/install/docker-compose/
做了适当的修改,因为直接使用的
话,在Debian11安装的docker上会出现`Docker Compose: depends_on with condition -> invalid type, should be an array`的错误,查找资料发现这个
是因为当前的docker-compose不支持这样的语法 要是新版本的docker,它是自带docker compose 这样的命令的。所以为了和当前docker-compose
兼容,就删除了一些和运行不太相关的配置。如上面代码所示。