Docker 部署 Halo

junlan
45
2024-11-25

Halo介绍

官网:https://www.halo.run

文档:https://docs.halo.run

社区:https://bbs.halo.run

应用市场:https://www.halo.run/store/apps

开源地址:https://github.com/halo-dev/halo

Docker hub:https://hub.docker.com/r/halohub/halo

部署Halo

[root@localhost ~]# mkdir ~/halo && cd ~/halo

[root@localhost halo]# vi docker-compose.yaml

version: "3"

services:

  halo:

    image: registry.fit2cloud.com/halo/halo:2.20

    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

    environment:

      # JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数

      - JVM_OPTS=-Xmx256m -Xms256m

    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://localhost: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:

[root@localhost halo]# docker compose up -d

访问Halo

# 浏览器访问 /console 即可进入 Halo 管理端。

http://192.168.159.141:8090/console

# 进入博客首页(访客视角)

http://192.168.159.141:8090/