群晖使用 Docker 构建 Halo

 次点击
7 分钟阅读

前情提要:博主放在 Typecho 的数据不小心被全部清空了,只留下数据库文件,其他的媒体文件一个不留,遂打算重开一个博客,多方了解后,使用最新的 Halo2,在内网使用群晖部署。

1 - 创建资料文件夹

在群晖的 Docker 文件夹下新建 halo 文件夹,再在其下创建 halo2 和 db 两个文件夹

群晖使用 Docker 构建 Halo - 1.webp

2 - 在 Container Manager 中新增项目

群晖使用 Docker 构建 Halo - 2.webp

3 - 填写项目名称,选择刚刚创建的 halo 文件夹,并选择 “创建 compose.yaml 文件”

群晖使用 Docker 构建 Halo - 3.webp

4 - 复制 docker_compose.yaml

注意下面的 --spring.r2dbc.password=openpostgresql 字段,可以在此处修改数据库密码。如需修改需要同时修改两处,一处是数据库容器,一处是 Halo 容器

version: "3"

services:
  halo:
    image: halohub/halo:2.16
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./halo2:/root/.halo2
    ports:
      - "8090:8090"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s          
    command:
      - --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
      - --spring.r2dbc.username=halo
      # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=openpostgresql
      - --spring.sql.init.platform=postgresql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://127.0.0.1:8090/
  halodb:
    image: postgres:15.4
    restart: on-failure:3
    networks:
      halo_network:
    volumes:
      - ./db:/var/lib/postgresql/data
    healthcheck:
      test: [ "CMD", "pg_isready" ]
      interval: 10s
      timeout: 5s
      retries: 5
    environment:
      - POSTGRES_PASSWORD=openpostgresql
      - POSTGRES_USER=halo
      - POSTGRES_DB=halo
      - PGUSER=halo

networks:
  halo_network:

5 - 访问你的网站地址,默认为 http://127.0.0.1:8090,具体参考你的服务器设置。

© 本文著作权归作者所有,未经许可不得转载使用。