【docker】Halo博客搭建(2.20版本)

1. 前言

这篇文章夜梦将演示halo博客2.20版本(推荐)的搭建过程,简单明了、易于上手哦!如果想部署1.6版本,可以参考这篇文章:【docker】Halo博客搭建(1.6版本)

halo博客的搭建只能使用云服务器,对CPU无特别要求,内存最好在1G及以上。

2. 准备工作

夜梦这里使用的是雨云的服务器,使用的系统是ubuntu22.04。雨云长期全场景九折 + 首月五折优惠注册链接:https://www.rainyun.com/

此项目可以使用域名并开启 SSL。通过 namesilo 注册域名可以使用 1 美元优惠码:yemeng。

在开始部署之前,你需要安装 docker 和 docker-compose。具体安装见:【docker】在服务器上安装 docker/docker-compose

你可以为服务器添加 1GB~2GB 的 swap:手动添加 SWAP

连接服务器的工具XShell,下载以及连接的方法参考:从零开始建设自己的网站(6)——连接服务器

3. 开始安装

mkdir ~/.halo && cd ~/.halo

创建配置文件

vim docker-compose.yaml

英文状态下按i键进入编辑模式,编辑后粘贴以下代码(halo+mysql),请务必修改MYSQL_ROOT_PASSWORDspring.r2dbc.password为你自己的数据库密码。这里夜梦将数据库数据库密码修改为了GGh*#(hgH9SHA)

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:mysql://halodb:3306/halo
      - --spring.r2dbc.username=root
      # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=GGh*#(hgH9SHA)
      - --spring.sql.init.platform=mysql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://localhost:8090/

  halodb:
    image: mysql:8.1.0
    restart: on-failure:3
    networks:
      halo_network:
    command: 
      - --default-authentication-plugin=caching_sha2_password
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --explicit_defaults_for_timestamp=true
    volumes:
      - ./mysql:/var/lib/mysql
      - ./mysqlBackup:/data/mysqlBackup
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
      interval: 3s
      retries: 5
      start_period: 30s
    environment:
      # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
      - MYSQL_ROOT_PASSWORD=GGh*#(hgH9SHA)
      - MYSQL_DATABASE=halo

networks:
  halo_network:

Esc退出编辑,然后输入:wq保存退出。拉取镜像:

docker-compose up -d

4. 反向代理

如果你使用域名,你可以进行反向代理并开启 SSL,具体为你的域名 -> 服务器IP:8090,反代可以参考下面两篇文章:

【docker】反向代理神器 ——Nginx Proxy Manager 的安装

【docker】Nginx Proxy Manager 的使用

5. 使用

访问ip:8090或者是你的域名进入初始化界面,这里夜梦就拿ip:8090进行演示。

配置完成网站管理员的用户名与密码以后,就进入网站的后台了(其余时间可访问ip:8090/console或者是你的域名/console进入网站后台)。

主页面:

本文为夜梦星尘原创文章。
文章作者:夜梦星尘
文章链接:【docker】Halo博客搭建(2.20版本)
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自夜梦星尘
支持作者:夜梦星尘的爱发电
上一篇