背景

之前课题组使用 GitLab 进行版本控制,但在使用过程中遇到了以下问题:

  1. GitLab 运行较为缓慢,尤其在资源有限的服务器上。
  2. 之前的 GitLab 部署未使用 Docker 进行管理,维护较为繁琐。
  3. GitLab 默认的 SSH 端口无法轻松自定义,给远程访问带来了一些不便。

因此,决定采用 Gitea 作为替代方案,并通过 Docker 进行管理,以提升部署和维护的便捷性。

部署方案

采用 Docker 运行 Gitea,使用 docker-compose 进行管理,具体 docker-compose.yml 配置如下:

networks:
  gitea:
    external: false

services:
  server:
    image: docker.gitea.com/gitea:latest
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=mysql
      - GITEA__database__HOST=db:3306
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=gitea
    restart: always
    networks:
      - gitea
    volumes:
      - /srv/gitea/gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "233:22"
    depends_on:
      - db

  db:
    image: docker.io/library/mysql:8
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - /srv/gitea/mysql:/var/lib/mysql

部署步骤

  1. 安装 Docker 和 Docker Compose
  2. 创建 Gitea 目录并初始化 docker-compose.yml 文件
  3. 添加反向代理到127.0.0.1:3000

总结

相比 GitLab,Gitea 运行更轻量级,配合 Docker 部署管理更加方便。通过自定义 SSH 端口和 Web 访问端口,可以更好地适应不同网络环境。整个过程简单高效,适用于小型团队和个人使用。

标签: none