搭建Halo博客

47

折腾了蛮久的typecho,但是遇到了坑人的点,就是typecho后台登录会重写url 导致nginx配置的转发有问题。所以放弃了。因为docker容器很方便环境的管理和迁移,还有搭配docker-compose 来启动关联的服务相当的便捷。所以选择了docker-compose来一键部署halo博客。

docker-compose 文件

version: "3.7"

services:
  halo:
    image: halohub/halo:2.2.0
    container_name: halo
    restart: on-failure:3
    depends_on:
      - halodb
    networks:
      halo_network:
    volumes:
      - ./halodata:/root/.halo2
    ports:
      - "18080:8090"
    command:
      - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
      - --spring.r2dbc.username=root
      # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=xxxx
      - --spring.sql.init.platform=mysql
      # 外部访问地址,请根据实际需要修改
      - --halo.external-url=https://xxx.xx.com
      # 初始化的超级管理员用户名
      - --halo.security.initializer.superadminusername=xxxxxxx
      # 初始化的超级管理员密码
      - --halo.security.initializer.superadminpassword=xxxxxxx

  halodb:
    image: mysql:8.0.31
    container_name: halodb
    restart: on-failure:3
    networks:
      halo_network:
    command: 
      - --default-authentication-plugin=mysql_native_password
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --explicit_defaults_for_timestamp=true
    volumes:
      - ./mysql:/var/lib/mysql
      - ./mysqlBackup:/data/mysqlBackup
    ports:
      - "13306:3306"
    environment:
      # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
      - MYSQL_ROOT_PASSWORD=xxxxxx
      - MYSQL_DATABASE=xxxxx

networks:
  halo_network:

docker-compose文件参考自官方文档: https://docs.halo.run/getting-started/install/docker-compose/ 做了适当的修改,因为直接使用的

话,在Debian11安装的docker上会出现`Docker Compose: depends_on with condition -> invalid type, should be an array`的错误,查找资料发现这个

是因为当前的docker-compose不支持这样的语法 要是新版本的docker,它是自带docker compose 这样的命令的。所以为了和当前docker-compose

兼容,就删除了一些和运行不太相关的配置。如上面代码所示。

问题链接: https://stackoverflow.com/questions/71060072/docker-compose-depends-on-with-condition-invalid-type-should-be-an-array

相关链接