没有Mysql数据库参考官方文档同时在容器启动一个Mysql {#%E6%B2%A1%E6%9C%89mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E5%8F%82%E8%80%83%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3%E5%90%8C%E6%97%B6%E5%9C%A8%E5%AE%B9%E5%99%A8%E5%90%AF%E5%8A%A8%E4%B8%80%E4%B8%AAmysql}
已有Mysql 使用halo容器+已有mysql启动 {#%E5%B7%B2%E6%9C%89mysql-%E4%BD%BF%E7%94%A8halo%E5%AE%B9%E5%99%A8%2B%E5%B7%B2%E6%9C%89mysql%E5%90%AF%E5%8A%A8}
方式一 通过设置network_mode {#%E6%96%B9%E5%BC%8F%E4%B8%80-%E9%80%9A%E8%BF%87%E8%AE%BE%E7%BD%AEnetwork_mode}
1.x {#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 {#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 (推荐) {#%E6%96%B9%E5%BC%8F%E4%BA%8C-%E9%80%9A%E8%BF%87host.docker.internal-(%E6%8E%A8%E8%8D%90)}
1.x {#1.x-1}
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 {#2.x-1}
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
`
两种方式区别 {#%E4%B8%A4%E7%A7%8D%E6%96%B9%E5%BC%8F%E5%8C%BA%E5%88%AB}
参考https://www.wxy97.com/archives/78
启动 Halo 服务 {#%E5%90%AF%E5%8A%A8-halo-%E6%9C%8D%E5%8A%A1}
docker-compose up -d
详细说明请参考官方文档