使用 Docker-Compose 部署 Halo
14
2023-09-10
1、搭建前准备
查看之前发布的教程 安装docker、docker-compose
2、创建文件夹
mkdir ~/halo && cd ~/halo3、创建 docker-compose.yaml
vi ~/halo/docker-compose.yaml添加以下内容:
和数据库分开(推荐)
services:
halo:
image: registry.fit2cloud.com/halo/halo:2.20
restart: on-failure:3
container_name: halo
network_mode: "host"
volumes:
- ./:/root/.halo2
environment:
# JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
- JVM_OPTS=-Xmx256m -Xms256m
command:
# 修改为自己已有的 MySQL 配置
- --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/halo
- --spring.r2dbc.username=xxx
- --spring.r2dbc.password=xxx
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# 端口号 默认8090
- --server.port=8090或者放一起
services:
halo:
image: registry.fit2cloud.com/halo/halo:2.20
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./:/root/.halo2
ports:
- "8090:8090"
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=1234
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://公网ip:8090
# 初始化的超级管理员用户名
- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码
- --halo.security.initializer.superadminpassword=4321
halodb:
image: mysql:8.1.0
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
ports:
- "3306:3306"
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=1234
- MYSQL_DATABASE=halo
networks:
halo_network:4、创建 Docker 自定义桥接网络
docker network create halo-net5、MySQL 容器实例加入到该网络中
docker network connect halo-net mysql6、启动
docker compose up -d常用命令
docker compose stop # 暂停容器
docker compose down # 删除容器
docker compose pull # 更新镜像
docker compose restart # 重启容器
docker compose exec artalk bash # 进入容器
docker compose logs -f # 实时查看日志
7、访问
http://ip:端口号/console更新版本
1、停止halo
cd ~/halo && docker compose down```
2、备份数据
cp -r ~/halo ~/halo.archive3、更新 halo 服务
修改 halo 中的 docker-compose.yaml 中的镜像版本
vi docker-compose.yamlservices:
halo:
image: registry.fit2cloud.com/halo/halo:2.20
container_name: halo拉取最新镜像
docker compose pull halo启动
docker compose up -d