《Docker 部署 Gitea:几分钟搭建私人 Git 仓库》
核心:轻量级,配置 SSH 访问

一、为什么用 Gitea?

GitLab 太吃资源(4GB 内存起步),Gitea 只需 1GB 内存就能流畅运行,功能却足够团队使用:代码托管、Issue 管理、PR 审查、CI/CD 集成,一个都不少。

二、docker-compose.yml 配置

version: '3.8'

services:
  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    restart: always
    ports:
      - "3000:3000"   # Web 界面
      - "2222:22"     # SSH 端口(映射到宿主机的 2222)
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=sqlite3   # 也可改用 MySQL/PostgreSQL
      - GITEA__server__DOMAIN=你的域名或IP
      - GITEA__server__SSH_DOMAIN=你的域名或IP
      - GITEA__server__HTTP_PORT=3000
      - GITEA__server__SSH_PORT=22
      - GITEA__server__ROOT_URL=http://你的域名或IP:3000/
    volumes:
      - ./gitea-data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro

三、启动并初始化

docker-compose up -d

浏览器访问 http://你的IP:3000

首次访问会进入安装页面:

  1. 数据库选 SQLite3(简单)或 MySQL

  2. 站点名称随意填

  3. 关键配置:

  • SSH 服务端口:22

  • SSH 克隆地址:ssh://git@你的IP:2222/用户名/仓库名.git

四、SSH 访问配置(核心)

Gitea 容器内 SSH 监听的 22 端口,映射到宿主机 2222 端口。因此 Git 克隆时需要用 2222 端口:

# 克隆仓库示例
git clone ssh://git@你的IP:2222/用户名/仓库名.git

添加 SSH 公钥:

  1. 登录 Gitea 网页

  2. 点击右上角头像 → 设置 → SSH/GPG 密钥

  3. 粘贴本地 ~/.ssh/id_rsa.pub 内容

五、日常使用

# 推送代码
git add .
git commit -m "first commit"
git push origin main

# 创建仓库
# 网页上直接点击“新建仓库”

六、迁移 GitHub 仓库

Gitea 支持从 GitHub、GitLab 等平台迁移仓库:

  1. 点击右上角“+” → 迁移仓库

  2. 输入原仓库地址和 Token

更多推荐