Docker部署Halo博客
部署
- 创建halo文件夹
- 创建并编辑
docker-compose.yml文件,内容如下:
version: "3"
services:
halo:
image: registry.fit2cloud.com/halo/halo:2.22
restart: unless-stopped
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: unless-stopped
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:
- 运行容器
docker compose up -d
域名配置
- 配置域名的DNS解析
- NPM上配置反向代理,配置如下
- Domain Names:填写上一步配置的域名
- IP:填写
127.0.0.1 - Port:填写8090
- SSL Certificate:选择
Request a new Certificate - 勾选Force SSL
上述配置完后,通过域名/consloe即可访问halo后台