欢迎来到Cat2Bug欢迎来到Cat2Bug
首页
  • Cat2Bug-Platform
  • Cat2Bug-Platform
  • GitHub
  • Gitee
  • 简体中文
  • English
首页
  • Cat2Bug-Platform
  • Cat2Bug-Platform
  • GitHub
  • Gitee
  • 简体中文
  • English
  • 指南

    • 介绍
    • 在线体验
    • 编译程序
    • 系统部署
    • 如何升级
  • 功能

    • 成员
    • 团队
    • 项目
    • 交付物
    • 测试用例
    • 缺陷
    • 报告
    • 文档
    • 通知
  • API接口

    • API介绍
    • 缺陷接口
    • 报告接口

如何升级

备份数据库

术语说明
Docker镜像指定软件的Docker文件, 通过docker images命令查看镜像列表
Docker容器执行起来的Docker镜像实例,通过docker ps命令查看已运行的容器列表

说明

Cat2Bug-Platform.jar新程序在启动时,会自动对比老数据库与新数据库的数据结构和数据,并自动更新,因此,无论那种方式升级,请先备份数据库文件。

MySQL数据库备份

  • MySQL直接部署在服务器的导出方式,按照以下命令导出sql文件备份。
mysqldump -u MySQL用户名 -p cat2bug_platform > 导出文件名.sql
  • MySQL部署在Docker容器中,首先查看容器ID,命令如下:
docker ps

然后通过如下命令后点击回车键,回车后输入MySQL的登陆密码,再点击会车,成功后会将sql文件导出到当前文件夹:

docker exec -it <容器ID> mysqldump -u MySQL用户名 -p cat2bug_platform > 导出文件名.sql

H2数据库备份

  • Cat2Bug-Platform.jar系统直接部署在服务器中的,H2数据库已文件形式保存在Cat2Bug-Platform.jar根目录的data文件夹中,直接通过复制粘贴拷贝即可。
  • Cat2Bug-Platform部署在Docker容器中的,可以通过如下命令将H2数据库文件复制到宿主机。

查看容器ID,单容器查看镜像名称为cat2bug/cat2bug-platform的容器ID,Docker-Compose部署的查看镜像名为cat2bug/cat2bug-platform/web-after的容器ID,查看容器ID命令如下:

docker ps

复制H2数据库文件

单Docker容器部署拷贝
# 查看
docker cp <容器ID>:/cat2bug/data ./h2
Docker-Compose部署拷贝
docker cp <容器ID>:/home/data ./h2

提示

当查看当前路径./h2文件夹下有cat2bug.mv.db、cat2bug.trace.db两个文件时,表示复制成功。

备份日志

日志目录默认在Cat2Bug-Platform根目录的logs目录下,如果之前部署时修改过此路径,可以解压Cat2Bug-Platform.jar执行文件,在./BOOT-INF/classes/logback.xml中查看配置路径。

<!-- 日志存放路径 -->
<property name="log.path" value="logs" />

value设置的就是日志存储路径,默认为当前Jar文件下的logs目录,如果此目录不存在,将在Cat2Bug-Platform系统执行时自动创建。 手动备份此目录下的日志即可。

如部署时采用Docker部署,且没有将日志映射到宿主机,可通过命令拷贝。

单Docker容器部署拷贝
# 查看
docker cp <容器ID>:/cat2bug/logs ./logs
Docker-Compose部署拷贝
docker cp <容器ID>:/home/logs ./logs

备份附件及图片

附件及图片的存放路径默认存放在Cat2Bug-Platform系统项目路径的uploadPath目录中, 也可以通过解压Cat2Bug-Platform.jar文件,在./BOOT-INF/classes/application.yml文件中进行配置修改。

# 项目相关配置
cat2bug:
  # 文件路径
  profile: uploadPath

profile后面的值就是附件与图片的保存路径,如果此目录不存在,将在Cat2Bug-Platform系统执行时自动创建。 手动备份此目录下的文件即可。

如部署时采用Docker部署,且没有将uploadPath目录映射到宿主机,可通过命令拷贝将整个uploadPath目录中的文件拷贝到宿主机中。

单Docker容器部署拷贝
# 查看
docker cp <容器ID>:/cat2bug/uploadPath ./uploadPath
Docker-Compose部署拷贝
docker cp <容器ID>:/home/uploadPath ./uploadPath

Jar文件部署方式升级

Jar方式部署的系统在升级时关闭Jar进程,直接替换Jar文件,再重启启动即可。

Docker单容器的升级

  1. 查看运行的cat2bug/cat2bug-platform容器ID
docker ps
  1. 停止并删除cat2bug/cat2bug-platform容器
docker stop <容器ID>
docker rm <容器ID>
  1. 查看cat2bug/cat2bug-platform旧镜像
docker images
  1. 移除cat2bug/cat2bug-platform旧镜像
docker rmi <镜像ID>
  1. 下载并执行新的cat2bug/cat2bug-platform容器
docker run \
    -it -d -p 8022:8022 \
    -v ~/cat2bug-platform/data:/cat2bug/data \
    -v ~/cat2bug-platform/logs:/cat2bug/logs \
    -v ~/cat2bug-platform/upload:/cat2bug/uploadPath \
    --name cat2bug-platform \
    cat2bug/cat2bug-platform:latest
  • -v ~/cat2bug-platform/data:/cat2bug/data: 将系统中的h2数据库文件映射到本机~/cat2bug-platform/data目录
  • -v ~/cat2bug-platform/logs:/cat2bug/logs: 将系统中的日志文件映射到本机~/cat2bug-platform/logs目录
  • -v ~/cat2bug-platform/upload:/cat2bug/uploadPath: 将系统中下载的文件映射到本机~/cat2bug-platform/upload目录

将之前备份的日志、H2数据库(MySQL不用复制)、附件及图片等文件重新粘贴到指定映射目录。

  1. 执行成功后,从浏览器访问Cat2Bug-Platform系统,默认路径为 http://localhost:8022,检查是否可以正常使用。

Docker-Compose部署方式的升级

  1. 查看运行的cat2bug/cat2bug-platform-front和cat2bug/cat2bug-platform-after两个容器ID
docker ps
  1. 分别停止并删除cat2bug/cat2bug-platform-front和cat2bug/cat2bug-platform-after容器
docker stop <容器ID>
docker rm <容器ID>
  1. 查看cat2bug/cat2bug-platform-front和cat2bug/cat2bug-platform-after旧镜像
docker images
  1. 移除cat2bug/cat2bug-platform-front和cat2bug/cat2bug-platform-after旧镜像
docker rmi <镜像ID>
  1. 通过Docker-Compose下载并执行新的Cat2Bug-Platform容器
curl -o docker-compose.yml http://cat2bug.com/docker/docker-compose.yml
docker-compose up -d
  • curl: 下载docker-compose.yml文件
  • docker-compose 启动容器

在docker-compose.yml文件中,设置了Docker容器映射到宿主机的日志、附件和图片的路径,如果旧镜像和新镜像映射的不同,可将备份的文件拷贝过来。

以下为docker-compose.yml文件内容,其中78、79行既是映射路径。

version: '3.4'
name: cat2bug-platform
services:
  cat2bug-platform-ai:
    image: ollama/ollama:latest
    hostname: ollama
    container_name: cat2bug-platform-ai
    restart: always
    volumes:
      - ./ai:/root/.ollama
    expose:
      - "11434"
    environment:
      TZ: Asia/Shanghai
    healthcheck:
      test: "exit 0"
    networks:
      - cat2bug-network
  cat2bug-platform-mysql:
    image: cat2bug/cat2bug-platform-mysql:latest
    hostname: mysql
    container_name: cat2bug-platform-mysql
    restart: always
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --interactive_timeout=259200
      --wait_timeout=259200
      --max_connections=1000
    volumes:
      - ./mysql/:/var/lib/mysql
    expose:
      - "3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_HOST: "%"
      MYSQL_DATABASE: cat2bug_platform
      MYSQL_ROOT_PASSWORD: cat2bug_password
      MYSQL_USER: cat2bug
      MYSQL_PASSWORD: cat2bug_password
    healthcheck:
      test: "mysql -h127.0.0.1 -P3306 -uroot -pcat2bug_password -e 'SHOW DATABASES;'"
      interval: 10s
      timeout: 5s
      retries: 6
      start_period: 30s
    networks:
      - cat2bug-network
  cat2bug-platform-redis:
    image: redis:7.2.3
    hostname: redis
    container_name: cat2bug-platform-redis
    restart: always
    expose:
      - "6739"
    healthcheck:
      test: "exit 0"
    networks:
      - cat2bug-network
  cat2bug-platform-web-after:
    hostname: after
    image: cat2bug/cat2bug-platform-web-after:latest
    container_name: cat2bug-platform-web-after
    restart: always
    expose:
      - "2020"
    environment:
      SPRING_DATASOURCE_DRUID_MASTER_URL: jdbc:mysql://cat2bug-platform-mysql:3306/cat2bug_platform?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
      SPRING_DATASOURCE_DRUID_MASTER_USERNAME: root
      SPRING_DATASOURCE_DRUID_MASTER_PASSWORD: cat2bug_password
      SPRING_REDIS_HOST: cat2bug-platform-redis
      REDIS_HOSTS: cat2bug-platform-redis:6379
      CAT2BUG_AI_HOST: http://cat2bug-platform-ai:11434
    volumes:
      - ./uploadPath:/home/uploadPath
      - ./logs:/home/logs
    links:
      - cat2bug-platform-mysql
      - cat2bug-platform-redis
      - cat2bug-platform-ai
    depends_on:
      cat2bug-platform-mysql:
        condition: service_healthy
      cat2bug-platform-redis:
        condition: service_healthy
      cat2bug-platform-ai:
        condition: service_healthy
    healthcheck:
      test: "exit 0"
    networks:
      - cat2bug-network
  cat2bug-platform-web-front:
    hostname: front
    image: cat2bug/cat2bug-platform-web-front:latest
    container_name: cat2bug-platform-web-front
    restart: always
    ports:
      - "8022:80"
    links:
      - cat2bug-platform-web-after
    depends_on:
      cat2bug-platform-web-after:
        condition: service_healthy
    networks:
      - cat2bug-network
networks:
  cat2bug-network:
    driver: bridge

  1. 执行成功后,从浏览器访问Cat2Bug-Platform系统,默认路径为 http://localhost:8022,检查是否可以正常使用。
Last Updated:
Contributors: yuzhantao
Prev
系统部署