XZY·ONE

Xzy®

Docker 环境变量安装 Halo 并连接 PostgreSQL 数据库

55
2024-12-05
Docker 环境变量安装 Halo 并连接 PostgreSQL 数据库

Halo 是一个强大易用的开源建站工具,凭借丰富的模板与插件,快速构建理想的个人网站。

作为博客平台,与 WordPress 相比,Halo 更适合国内用户的习惯和逻辑;与 Typecho 相比,功能更加丰富,对新手更加友好。

为什么使用环境变量配置数据库

Halo 官网教程中建议通过运行参数配置数据库信息,但这种方法不够灵活。例如,在群晖或极空间等系统中,创建容器后无法修改运行参数。而使用 环境变量 配置数据库信息,则可在容器启动后灵活调整,方便运维管理。

这里我们使用 Docker 来搭建 Halo,使用本机已有的 PostgreSQL 环境,通过环境变量传递数据库信息。如果你还没有安装 PostgreSQL 数据库,那么试下:

https://xzy.one/archives/docker-postgres

————

具体代码如下:

docker run -d \
	--name halo \
    -p 8090:8090 \
	-e SPRING_R2DBC_USERNAME={DBUSERNAME} \
	-e 'SPRING_R2DBC_PASSWORD={DBPASSWORD}' \
	-e SPRING_R2DBC_URL=r2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE} \
	-e SPRING_SQL_INIT_PLATFORM=postgresql \
	-e HALO_EXTERNAL_URL=https://domain.name/ \
	-v /path:/root/.halo2 \
    --restart unless-stopped \
	halohub/halo:2

运行参数与环境变量名称对比

运行参数名

环境变量名

描述

spring.r2dbc.url

SPRING_R2DBC_URL

数据库连接地址,具体格式如下:r2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE}

spring.r2dbc.username

SPRING_R2DBC_USERNAME

数据库用户名

spring.r2dbc.password

SPRING_R2DBC_PASSWORD

数据库密码

spring.sql.init.platform

SPRING_SQL_INIT_PLATFORM

数据库平台名称,支持:postgresqlmysqlmariadbh2(不推荐)

halo.external-url

HALO_EXTERNAL_URL

外部访问链接,如需公网访问,需设置为实际访问地址(如 https://your-domain.com/

数据库链接方式参考

数据库类型

链接地址格式

平台名称

PostgreSQL

r2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE}

postgresql

MySQL

r2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE}

mysql

MariaDB

r2dbc:pool:mariadb://{HOST}:{PORT}/{DATABASE}

mariadb

小结

通过 Docker 配置 Halo 并连接 PostgreSQL 数据库的环境变量,可以实现灵活的部署与管理。相比于运行参数,环境变量的方式更加适合实际运维场景,特别是对于需要动态调整配置的环境。按照本文提供的步骤,您可以快速搭建一个强大易用的 Halo 站点!