参考资料
文档地址:http://docs.halo.run/
社区地址:https://bbs.halo.run/
官网地址:https://halo.run/
GitHub地址:https://github.com/halo-dev/halo
一、docker和docker-compose安装
方法一:
- 执行rpm -qa | grep docker查看当前云主机是否已安装docker
- 执行以下命令安装依
- 配置国内docker源
- 进行docker安装
yum install docker-ce docker-ce-cli containerd.io
方法二(推荐):
- 国内执行以下命令一键安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
- 启动docker并设置为开机自启
安装docker-compose遇到的问题:
/usr/local/bin/docker-compose: line 1: html: No such file or directory
/usr/local/bin/docker-compose: line 2: syntax error near unexpected token `<'
'usr/local/bin/docker-compose: line 2: `<head><title>503 Service Temporarily Unavailable</title></head>
解决办法:
手动下载docker-compose二进制文件上传到目标虚拟机的/usr/local/bin
对docker-compose二进制文件赋权
chmod +x /usr/local/bin/docker-compose
二、容器化部署Halo和Halo数据库mysql
- 创建安装目录,配置yml文件
配置文件解析:
version: "3"
services:
halo:
image: halohub/halo:2.14.0 #通过https://github.com/halo-dev/halo/releases保证是最新版本
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./:/root/.halo2
ports:
- "8080:8090" #8080为容器外需要监听的端口,会通过此端口进行网站的访问,8090保持默认。也可填域名
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root #数据库用户名
- --spring.r2dbc.password=Admin@123 #数据库密码
- --spring.sql.init.platform=mysql
- --halo.external-url=http://xx.xx.77.251:8090/ #虚拟机地址
- --halo.security.initializer.superadminusername=superadmin #超级管理员用户名
- --halo.security.initializer.superadminpassword=Admin@123 #超级管理员密码
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:
- "3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 3s
retries: 5
start_period: 30s
environment:
- MYSQL_ROOT_PASSWORD=Admin@123 #数据库密码,需要和上面保持一致
- MYSQL_DATABASE=halo
networks:
halo_network:
2.部署halo和mysql
docker-compose up -d
- 出现下图所示表示容器创建成功
三、初始化
- 部署完成后通过ip:port方式或者域名进行访问进行初始化操作
- 通过创建的账号登录控制台进行自定义初始化,为网站进行主题美化和用户创建等。