侧边栏壁纸
博主头像
伯淳的个人博客博主等级

行动起来,活在当下

  • 累计撰写 35 篇文章
  • 累计创建 5 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

用docker搭建halo博客

Administrator
2023-12-04 / 0 评论 / 0 点赞 / 14 阅读 / 3456 字

搭建环境

- 服务器:ucloud香港机

- 系统:Centos 7

- 安装好docker, docker-compose

- 域名,并解析好到服务器

操作步骤:

1.创建安装目录

mkdir -p /root/data/docker_data/halo
cd /root/data/docker_data/halo

2.创建配置文件:

vim docker-compose.yml

复制一下内容进配置文件:

version: "3"

services:
  halo:
    image: halohub/halo:2.10.0
    container_name: halo
    restart: on-failure:3
    depends_on:
      halodb:
        condition: service_healthy
    networks:
      halo_network:
    volumes:
      - ./:/root/.halo2
    ports:
      - "8090:8090"
    command:
      - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
      - --spring.r2dbc.username=root
        # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
      - --spring.r2dbc.password=xxxxxx
      - --spring.sql.init.platform=mysql
        # 外部访问地址,请根据实际需要修改
      - --halo.external-url=http://dongbocun.top
                              # 初始化的超级管理员用户名
      - --halo.security.initializer.superadminusername=bocun
                                       # 初始化的超级管理员密码
      - --halo.security.initializer.superadminpassword=xxxxxx
   
  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:
      - "3306"
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
      interval: 3s
      retries: 5
      start_period: 30s
    environment:
      # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
      - MYSQL_ROOT_PASSWORD=xxxxxx
      - MYSQL_DATABASE=halo

networks:
  halo_network:

3.服务器防火墙放行8090端口

4.启动容器

cd /root/data/docker_data/halo    # 来到 docker-compose配置文件所在的文件夹下
docker compose up -d

到此就可以通过http://服务器ip:8090访问halo了。

5.反向代理

用的caddy,十分简单。

vim /etc/caddy/Caddyfile

添加以下内容:

```

解析好的域名 {

reverse_proxy 搭建halo服务器的ip:8090

}

```

重新加载caddy即可:

systemctl reload caddy

现在就可以用域名访问halo博客了。

6.更新halo

cd /root/data/docker_data/halo

docker-compose down 

cp -r /root/data/docker_data/halo /root/data/docker_data/halo.archive  # 万事先备份,以防万一

docker compose pull

docker compose up -d    # 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

7.卸载halo

cd /root/data/docker_data/halo

docker compose down

cd ..

rm -rf /root/data/docker_data/halo  # 完全删除映射到本地的数据

0

评论区