version: "3"
services:
halo:
image: registry.fit2cloud.com/halo/halo:2.18
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
# Halo的工作目录,用于存储主题、插件、上传文件等
- ./halo2:/root/.halo2
ports:
# 主机端口:容器端口,将内部的8090端口映射到主机的8090端口
- "10003:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:10003/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
command:
# 🔴 使用MariaDB(MySQL兼容协议)的连接配置
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halodb
- --spring.r2dbc.username=halo
- --spring.r2dbc.password=yourPassword # 🔴 请修改为强密码
- --spring.sql.init.platform=mysql
# 外部访问地址,如果通过域名访问,请修改为 https://yourdomain.com
- --halo.external-url=https://yourdomain.com
halodb:
image: mariadb:11.4
container_name: halodb
restart: on-failure:3
networks:
halo_network:
volumes:
# MariaDB数据持久化目录
- ./mariadb_data:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 5
environment:
# 🔴 以下密码需与上方Halo服务中的 `spring.r2dbc.password` 完全一致
- MARIADB_ROOT_PASSWORD=yourPassword # 可选,root用户密码
- MARIADB_DATABASE=halodb
- MARIADB_USER=halo
- MARIADB_PASSWORD=yourPassword # 🔴 与上方的数据库密码一致
- MARIADB_AUTO_UPGRADE=1
networks:
halo_network:halo是一个开源的博客系统,以轻量为其特色