ubuntu 软件源中的docker和docker-compose 版本通常比较低,用docker-compose部署halo往往会报错,推荐用 docker 官方软件源来安装。
一、卸载与官方docker 相冲突的软件包
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
顺便清理一下有残存配置信息的软件包
dpkg -l | grep ^rc | awk '{print $2}' | sudo xargs dpkg -P
二、添加官方软件源
# 添加 Docker's 官方的 GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# 添加官方软件源:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新软件数据:
sudo apt-get update
三、安装 docker 和 docker-compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
四、启动docker
sudo systemctl start docker
五、下载halo镜像
sudo docker pull halohub/halo:2.13
六、创建和编辑docker-compose.yaml 文件
在你想要安装网站的地方,通常是家目录(~),创建一个 docker-compose.yaml 文件,内容如下:
version: "3"
services:
halo:
image: halohub/halo:2.13
container_name: halo
restart: on-failure:3
network_mode: "host"
volumes:
- ./halo:/root/.halo2
command:
# 修改为你自己的 MySQL 数据库配置信息,这里使用的数据库就是下一步创建的 halo 数据库
- --spring.r2dbc.url=r2dbc:pool:mysql://MySQL数据库地址:3306/halo
- --spring.r2dbc.username=数据库用户名
- --spring.r2dbc.password=数据库密码
- --spring.sql.init.platform=mysql
# 外部访问地址,如你的域名地址
- --halo.external-url=http://halo.hollowman.cn/
# 端口号 默认8090
- --server.port=8090
七、给自己的 Mysql 数据库创建一个 halo 数据库
连接 mysql 数据库:
sudo mysql -uroot -p
创建halo数据库:
create database halo;
八、通过 docker compose 部署和创建容器
在 docker-compose.yaml 文件所在的目录通过 docker compose 来部署容器
sudo docker compose up -d
九、添加反向代理
参考前一篇文章的第四点 添加反向代理服务
十、初始化和使用 Halo
在浏览器输入:halo.hollowman.cn/console 即可初始化 Halo 个人网站了,而数据库使用的则是 mysql。