
DockerCompose部署Halo
搭建Docker环境
Docker 安装文档:https://docs.docker.com/engine/install/
Docker Compose 安装文档:https://docs.docker.com/compose/install/
创建容器分组
目前 Halo 官方维护的 Docker 镜像仓库,可以根据自己的需求选择合适的镜像源:
registry.fit2cloud.com/halo/halo
在系统任意位置创建一个文件夹,此文档以
~/halo
为例。mkdir ~/halo && cd ~/halo
创建
docker-compose.yaml
(采用外部的MySQL)services: halo: image: halohub/halo:${VERSION} container_name: ${CONTAINER_NAME} deploy: resources: limits: cpus: ${CPUS} memory: ${MEMORY_LIMIT} ports: - ${HOST_IP}:${PORT}:8090 volumes: - ${APP_PATH}/data:/root/.halo2 environment: # JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数 - JVM_OPTS=-Xmx256m -Xms256m command: - --spring.r2dbc.url=r2dbc:pool:${DB_TYPE}://${DB_HOST}:${DB_PORT}/${DB_NAME} - --spring.r2dbc.username=${DB_USERNAME} - --spring.r2dbc.password=${DB_PASSWORD} - --spring.sql.init.platform=${DB_TYPE} - --halo.external-url=${HALO_EXTERNAL_URL} healthcheck: interval: 30s retries: 5 start_period: 30s test: - CMD - curl - -f - http://localhost:8090/actuator/health/readiness timeout: 5s restart: always labels: createdBy: Apps networks: - own extra_hosts: # Linux 系统需手动启用 - "host.docker.internal:host-gateway" # 自动解析宿主机 IP networks: own: external: true
创建
.env
VERSION=2.20.15 CONTAINER_NAME=halo APP_PATH=/www/dk_app/halo HOST_IP=127.0.0.1 PORT=8090 DB_TYPE=mysql DB_HOST=host.docker.internal # 自动解析宿主机 IP DB_PORT=3306 DB_NAME=halo DB_USERNAME=halo DB_PASSWORD= HALO_EXTERNAL_URL=http://localhost:8090/ # 改为外部访问地址 CPUS=1 MEMORY_LIMIT=256MB
启动 Halo 服务
# docker-compose.yaml和.env在同目录下可直接运行 docker-compose up -d # 查看导入变量的情况(可选):使用 config 命令查看解析后的应用程序配置,该命令会将相关配置打印到终端 docker-compose config # 如果 .env 文件不在 docker-compose.yaml 文件的同级目录,可以使用 --env-file 选项指定其路径。 docker-compose --env-file /path/to/your/.env up -d
实时查看日志:
docker-compose logs -f
用浏览器访问 /console 即可进入 Halo 管理页面,首次启动会进入初始化页面。
更新容器组
备份数据,可以参考 备份与恢复 进行完整备份(可选,但推荐备份)。
更新 Halo 服务
修改
docker-compose.yaml
中配置的镜像版本。services: halo: image: registry.fit2cloud.com/halo/halo:2.20
docker-compose up -d