缘由:博主近期手痒,想搞个BBS自己玩,于是翻遍开源,最终选择有了Halo
废话不多说,现在开始教程
前提准备:根据Halo要求,需要有以下硬性条件
服务器一台(购买链接)
数据库一台
域名(含SSL)一个
一、购买ECS
近期阿里云搞新老用户福利,2核2G3M带宽,40G硬盘服务器,一年99元,并可以以99元连续续费3年
系统的选择:推荐 Ubuntu 或者阿里云的 Alibaba Cloud Linux ,版本嘛,选最新的就行
修改hostname(可以不改,我个人觉得阿里云自带的hostname太长)
[root@127basdnas213~]# vi /etc/hostname
# 删除hostname原有的配置,改成自己喜欢的名字
# wq 保全
# 更新配置或重启
[root@127basdnas213~]# source /etc/hostname
[root@127basdnas213~]# reboot
更新组件
[root@south ~]# yum update -y
二、搭建Docker和Docker-Compose
安装 docker
# step 1: 安装必要的一些系统工具
[root@south ~]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
[root@south ~]# sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
[root@south ~]# sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
# Step 4: 更新并安装Docker-CE
[root@south ~]# sudo yum makecache
[root@south ~]# sudo yum -y install docker-ce
# Step 4: 开启Docker服务
[root@south ~]# sudo service docker start
# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
# [root@south ~]# vim /etc/yum.repos.d/docker-ce.repo
# 将[docker-ce-test]下方的enabled=0修改为enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# [root@south ~]# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 3:24.0.7-1.el8 docker-ce-stable
# docker-ce.x86_64 3:24.0.7-1.el8 @docker-ce-stable
# docker-ce.x86_64 3:24.0.6-1.el8 docker-ce-stable
# docker-ce.x86_64 3:24.0.5-1.el8 docker-ce-stable
# docker-ce.x86_64 3:24.0.4-1.el8 docker-ce-stable
# docker-ce.x86_64 3:24.0.3-1.el8 docker-ce-stable
# docker-ce.x86_64 3:24.0.2-1.el8 docker-ce-stable
# docker-ce.x86_64 3:24.0.1-1.el8 docker-ce-stable
# docker-ce.x86_64 3:24.0.0-1.el8 docker-ce-stable
# docker-ce.x86_64 3:23.0.6-1.el8 docker-ce-stable
# docker-ce.x86_64 3:23.0.5-1.el8 docker-ce-stab
# Available Packages
# Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.1-1.el7.centos)
# [root@south ~]# sudo yum -y install docker-ce-[VERSION]
安装校验
[root@south ~]# docker version
Client: Docker Engine - Community
Version: 24.0.7
API version: 1.43
Go version: go1.20.10
Git commit: afdd53b
Built: Thu Oct 26 09:09:18 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.7
API version: 1.43 (minimum version 1.12)
Go version: go1.20.10
Git commit: 311b9ff
Built: Thu Oct 26 09:08:20 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.26
GitCommit: 3dd1e886e55dd695541fdcd67420c2888645a495
runc:
Version: 1.1.10
GitCommit: v1.1.10-0-g18a0cb0
docker-init:
Version: 0.19.0
GitCommit: de40ad0
安装docker-compose
方式一:服务器使用curl从GitHub下载对应版本,并安装
# 下载docker-compose
[root@south ~]# sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
[root@south ~]# sudo chmod +x /usr/local/bin/docker-compose
# 建立软链接
[root@south ~]# sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 测试
[root@south ~]# docker-compose --version
方式二:本地从GitHub下载对应版本:https://github.com/docker/compose/releases/tag/v2.21.0,并上传到服务器的目录(可以在root目录下,也可以在其他目录)
查看服务器对应的版本
[root@south ~]# uname -s Linux [root@south ~]# uname -m x86_64
本服务器使用的是v2.21.0版本的:docker-compose-linux-x86_64
[root@south ~]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
# 赋予执行权限
[root@south ~]# sudo chmod +x /usr/local/bin/docker-compose
# 建立软链接
[root@south ~]# sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 测试
[root@south ~]# docker-compose --version
三、Docker镜像仓库
四、安装Halo(数据库采用Mysql)
在系统根目录下面建立一个文件夹
[root@south ~]# mkdir /software
[root@south ~]# mkdir /software/halo
[root@south ~]# mkdir /software/halo/data
给文件夹赋予权限
[root@south ~]# chmod -R 777 /software/halo
[root@south ~]# chmod -R 777 /software/halo/data
在目录:/software/halo,下新增一个docker-compose.yaml
[root@south halo]# vim docker-compose.yaml
# 新增一下内容
version: "3"
services:
halo:
image: halohub/halo:2.11
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
# 持久化数据目录
volumes:
- /software/halo/data:/root/.halo2
ports:
- "80:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://112.124.14.174/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=vivioning
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://112.124.14.174
halodb:
image: mysql:8.1.0
container_name: halodb
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:
- /software/mysql/data:/var/lib/mysql
- /software/mysql/backup:/data/mysqlBackup
ports:
- "3306:3306"
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=vivioning
- MYSQL_DATABASE=halo
networks:
halo_network:
运行&测试
[root@south halo]# docker-compose up -d
查看日志
[root@south halo]# docker-compose logs -f halo