记录给课题组部署Gitea
背景
之前课题组使用 GitLab 进行版本控制,但在使用过程中遇到了以下问题:
- GitLab 运行较为缓慢,尤其在资源有限的服务器上。
- 之前的 GitLab 部署未使用 Docker 进行管理,维护较为繁琐。
- 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
部署步骤
- 安装 Docker 和 Docker Compose
- 创建 Gitea 目录并初始化
docker-compose.yml
文件 - 添加反向代理到
127.0.0.1:3000
总结
相比 GitLab,Gitea 运行更轻量级,配合 Docker 部署管理更加方便。通过自定义 SSH 端口和 Web 访问端口,可以更好地适应不同网络环境。整个过程简单高效,适用于小型团队和个人使用。