XZY·ONE

Xzy®

Docker中通过环境变量配置安装 Halo 并连接数据库

37
2024-12-05
Docker中通过环境变量配置安装 Halo 并连接数据库

Halo 是一个强大易用的开源建站工具,配合上丰富的模板与插件,帮助你构建你心中的理想站点。

作为博客平台,与 Wordpress 相比,其更适于国人习惯和逻辑,本地化更强;与 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

数据库连接地址,详细可查阅下方的 数据库配置

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

外部访问链接,如果需要在公网访问,需要配置为实际访问地址

链接方式

链接地址格式

SPRING_SQL_INIT_PLATFORM

PostgreSQL

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

postgresql

MySQL

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

mysql

MariaDB

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

mariadb