Administrator
发布于 2026-01-12 / 10 阅读
1
0

halo docker compose 文件 示例

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是一个开源的博客系统,以轻量为其特色


评论