安装Docker(由于我已安装,就不做演示)
首先我们需要准备一台linux系统
这里以centos7.9为基础
首先安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置阿里云的docker镜像源(加快安装速度)
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装最新版本的docker
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
如果有提示,输入y
等待结束,到此docker安装完毕
设置docker开机自启并立即启动
systemctl enable docker --now
设置docker镜像源(也可使用自己的)
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://tesemv0a.mirror.aliyuncs.com"]
}
EOF
重启docker
systemctl restart docker
安装和部署halo(使用默认h2数据库--建议只做测试使用)
根据自己个人情况修改以下的参数
halo.external-url 为访问地址 (由于我们会使用nginx进行反向代理,故可默认)
superadminusername 为用户名
superadminpassword 为密码
docker run \
-it -d \
--name halo \
-p 8090:8090 \
-v ~/.halo2:/root/.halo2 \
halohub/halo:2.5 \
--halo.external-url=http://localhost:8090/ \
--halo.security.initializer.superadminusername=admin \
--halo.security.initializer.superadminpassword=P@88w0rd
通过命令docker ps查看运行状态
安装和部署halo(使用mysql等数据库)
我们首先需要用到docker-compose工具进行安装
首先安装docker-compose(这里使用ghproxy.com进行代理,以解决国内访问不了github的问题)
curl -L "https://ghproxy.com/github.com/docker/compose/releases/download/v2.18.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
创建软链:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
测试是否安装成功:
docker-compose version
首先创建一个文件夹保存yaml文件
cd /opt && mkdir ~/halo && cd ~/halo
vim docker-compose.yaml
此时输入冒号并回车:set paste(需要英文的冒号)
再按i看到左下角
再将下述两个docker-compose.yaml的其中一个粘贴 按ESC按钮后输入:wq 保存
根据实际情况修改以下yaml文件
docker-compose.yaml(此yaml文件会启动一个mysql docker应用)
version: "3"
services:
halo:
image: halohub/halo:2.5
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./:/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:mysql://halodb:3306/halo
- --spring.r2dbc.username=root
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
- --spring.r2dbc.password=o#DwN&JSa56
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# 初始化的超级管理员用户名
- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码
- --halo.security.initializer.superadminpassword=P@88w0rd
halodb:
image: mysql:8.0.31
container_name: halodb
restart: on-failure:3
networks:
halo_network:
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
volumes:
- ./mysql:/var/lib/mysql
- ./mysqlBackup:/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=o#DwN&JSa56
- MYSQL_DATABASE=halo
networks:
halo_network:
docker-compose.yaml(需使用自用mysql需要修改mysql的ip 用户名密码)
version: "3"
services:
halo:
image: halohub/halo:2.5
container_name: halo
restart: on-failure:3
network_mode: "host"
volumes:
- ./:/root/.halo2
command:
# 修改为自己已有的 MySQL 配置
- --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/halo
- --spring.r2dbc.username=root
- --spring.r2dbc.password=
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# 初始化的超级管理员用户名
- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码
- --halo.security.initializer.superadminpassword=P@88w0rd
# 端口号 默认8090
- --server.port=8090
我这里使用第二个作为演示:
创建mysql数据库
修改docker-compose.yaml中的mysql ip 用户名和密码
修改完按ESC后输入:wq保存
参数详解:
参数名 描述
spring.r2dbc.url 数据库连接地址,详细可查阅下方的 数据库配置
spring.r2dbc.username 数据库用户名
spring.r2dbc.password 数据库密码
spring.sql.init.platform 数据库平台名称,支持 postgresql、mysql、h2
halo.external-url 外部访问链接,如果需要在公网访问,需要配置为实际访问地址
halo.security.initializer.superadminusername 初始超级管理员用户名
halo.security.initializer.superadminpassword 初始超级管理员密码
启动服务
docker-compose up -d
到此安装完毕
NGINX的配置(我们这里使用宝塔)
参照图片设置反向代理即可
配置完成则可输入域名进行访问
若不使用宝塔 则需手动配置conf文件 最后reload即可
server {
listen 80;
server_name halo.lcy.pub; ####域名
include ./extra.d/nginx_vts_exporter.conf;
location / {
proxy_pass http://127.0.0.1:8090; ##ip:端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
2 条评论
看的我热血沸腾啊www.jiwenlaw.com
想想你的文章写的特别好https://www.ea55.com/