【docker系列】创建博客 halo 2.11

382 阅读2分钟
  1. 介绍

Halo 是一款带后台管理的开源建站工具,基于 Java Spring Boot 构建的,支持REST API、模板系统、附件系统和评论系统等功能。可以搭配不同的模板和插件使用,支持富文本编辑器。可以构建网站或者博客。

demo地址:demo.halo.run
demo后台地址:demo.halo.run/console
用户名:demo
密码:P@ssw0rd123..

2. 需要环境

2.1 硬件需求

RAM 1G
硬盘 400M

2.2 软件需求

需要Linux系统,Docker、Docker-Compose,环境安装见《必备的Docker和Dockercompose环境安装》

3.安装

再docker目录下创建安装文件夹,这里需注意,halo 1.x和2.x版本不兼容,做好备份,不能直接覆盖。

3.1 Docker-Compose方式安装

切换到root权限

sudo -i

创建数据目录

mkdir /etc/docker/halo && cd /etc/docker/halo

编辑docker-compose文件

vim docker-compose.yaml

version: "3"

services:
halo:
image: registry.fit2cloud.com/halo/halo:2
restart: always
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://localhost:8090/
    halodb:
    image: postgres:15.4
    restart: always
    networks:
    halo_network:
    volumes:
  • ./db:/var/lib/postgresql/data

默认没有设置端口映射,如果需要在容器外部访问数据库,可以添加端口为 5432(默认)

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:

复制上述配置文件内容,shift+ins 粘贴文本后,输入 :wq 退出保存

#启动安装服务
docker-compose up -d

3.2 Docker安装

再docker目录下创建安装文件夹,这里需注意,halo 1.x和2.x版本不兼容,做好备份,不能直接覆盖。

切换到root权限

sudo -i

创建数据文件夹

mkdir /etc/docker/halo && cd /etc/docker/halo

1.创建容器

-d 后台运行 -p端口映射 -v 工作目录映射

docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.10

注意:此命令默认使用自带的 H2 Database 数据库。如需使用 PostgreSQL,请参考:使用 Docker Compose 部署

4.使用配置

用浏览器访问 /console 即可进入 Halo 管理页面,首次启动会进入初始化页面
通过 http://ip:端口号 的形式无法访问,云服务型需要再控制面板的安全策略阻里面打开访问端口8090(默认)

5.注意事项

Halo 2.0 的底层架构变动,无法兼容 1.x 的数据,导致无法平滑升级,所以需要进行数据迁移。官方提供了从 Halo 1.5 / 1.6 版本迁移的插件。