gitea 从 windows 服务器迁移到 linux 服务器中并使用 docker 部署



1. 在原来的 gitea 安装位置备份所有目录文件以及导出数据库文件
  1. 首先在服务器中创建 docker-compose.yaml 文件
docker-compose.yaml 内容
version: "3"
# 创建mysql和gitea专用网络
networks:
  gitea:
    external: false
services:
  server:
  	# 指定gitea镜像及版本
    image: gitea/gitea:1.15.0
    # 指定容器别名
    container_name: gitea
    # 配置容器环境
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - DB_TYPE=mysql
      - DB_HOST=db:3306
      - DB_NAME=gitea
      - DB_USER=gitea
      - DB_PASSWD=gitea
    # 开机自启
    restart: always
    # 指定容器使用的网络
    networks:
      - gitea
    # 配置挂载卷
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    # 配置端口映射
    ports:
      - "3000:3000"
      - "222:22"
    # 指定依赖(先安装依赖)
    depends_on:
      - db
  db:
    image: mysql:8.0
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - ./mysql:/var/lib/mysql

  1. 启动 docker-compose up -d

  2. 输入网址 ip:3000 配置安装

  3. 安装完成后进入 docker 中恢复备份的数据

  4. 首先恢复数据库数据

    • 首先将备份的 sql 文件拷贝到 docker-compose.yaml 文件中 mysql 配置的映射文件夹 data
    • 进入 docker 的 mysql 容器中 docker exec -it 容器ID /bin/bash
    • 然后找到 mysql 目录下的 sql 文件 cd /var/lib/mysql && ls
    • 然后进入 mysql 数据库中导入备份文件
      mysql -u gitea -p
      # 输入mysql 密码登陆
      
      show databases;
      use gitea;
      source beifen.sql;
      
    • 至此数据库文件已恢复完成
  5. 然后恢复存储仓库 repositories

将备份的 repositories 目录中的全部文件拷贝到 docker-compose.yaml 文件中 gitea 配置的映射文件夹 ./data/git/repositories 即可

  1. 最后恢复个人配置文件 Custom
  • 首先在 docker-compose.yaml 文件中的 gitea 中添加以下内容
    environment:
      - GITEA_CUSTOM=/data/custom
    
  • 然后将备份的 custom 文件夹中的全部文件复制到 ./data/custom
  • 之后修改 custom>conf>app.ini 中的 RUN_USER = git
  • 然后重启 gitea 即可
  1. 至此所有文件恢复完成