Halo使用DockerCompose+现有Mysql部署
编辑
2296
2023-03-25
没有Mysql数据库参考官方文档同时在容器启动一个Mysql
已有Mysql 使用halo容器+已有mysql启动
方式一 通过设置network_mode
1.x
docker-compose.yaml
version: "3"
services:
halo_server:
image: halohub/halo:1.6.0
container_name: blog
restart: on-failure:3
network_mode: "host" #还有这行
volumes:
- ./:/root/.halo
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- SERVER_PORT=8090
- SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver
- SPRING_DATASOURCE_URL=jdbc:mysql://127.0.0.1:3306/数据库名称?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
- SPRING_DATASOURCE_USERNAME=数据库账户
- SPRING_DATASOURCE_PASSWORD=数据库密码
- HALO_ADMIN_PATH=admin
- HALO_CACHE=memory
2.x
docker-compose.yaml
version: "3"
services:
halo:
image: halohub/halo:2.4
container_name: halo
restart: on-failure:3
network_mode: "host"
volumes:
- ./:/root/.halo2
command:
# 修改为自己已有的MySQL配置
- --spring.r2dbc.url=r2dbc:pool:mysql://127.0.0.1:3306/halo
- --spring.r2dbc.username=用户名
- --spring.r2dbc.password=密码
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# 初始化的超级管理员用户名
- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码
- --halo.security.initializer.superadminpassword=admin
# 端口号 默认8090
- --server.port=8090
方式二 通过host.docker.internal (推荐)
1.x
docker-compose.yaml
version: "3"
services:
halo_server:
image: halohub/halo:1.6.0
container_name: blog
ports:
- "8090:8090"
restart: on-failure:3
volumes:
- ./:/root/.halo
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
environment:
- SERVER_PORT=8090
- SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.cj.jdbc.Driver
- SPRING_DATASOURCE_URL=jdbc:mysql://host.docker.internal::3306/数据库名称?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
- SPRING_DATASOURCE_USERNAME=数据库账户
- SPRING_DATASOURCE_PASSWORD=数据库密码
- HALO_ADMIN_PATH=admin
- HALO_CACHE=memory
extra_hosts:
- host.docker.internal:host-gateway
2.x
docker-compose.yaml
version: "3"
services:
halo:
image: halohub/halo:2.4
container_name: halo
restart: on-failure:3
volumes:
- ./:/root/.halo2
ports:
- "8090:8090"
command:
# 修改为自己已有的MySQL配置
- --spring.r2dbc.url=r2dbc:pool:mysql://host.docker.internal:3306/halo
- --spring.r2dbc.username=用户名
- --spring.r2dbc.password=密码
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# 初始化的超级管理员用户名
- --halo.security.initializer.superadminusername=admin
# 初始化的超级管理员密码
- --halo.security.initializer.superadminpassword=admin
# 端口号 默认8090
- --server.port=8090
extra_hosts:
- host.docker.internal:host-gateway
两种方式区别
参考https://www.wxy97.com/archives/78
启动 Halo 服务
docker-compose up -d
详细说明请参考官方文档
- 12
- 1
-
分享