跳到主要内容

部署Gitea(Docker版)

参考: Gitea 官方文档

1.准备 Gitea 服务器

准备一台服务器,安装并启动 Docker 服务

2.创建 git 用户

第一步,添加 git 用户

sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git

第二步,生成密钥对

sudo -u git ssh-keygen -t rsa -b 4096 -C "Gitea Host Key"

第三步,公钥添加到自身 ~/.ssh/authorized_keys

sudo sh -c 'cat /home/git/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys'

第四步,创建 ssh 端口转发(2222 下一步部署容器使用的端口):

# 1.创建规则文件
sudo touch /usr/local/bin/gitea

# 2.复制粘贴以下内容到 /usr/local/bin/gitea
ssh -p 2222 -o StrictHostKeyChecking=no git@127.0.0.1 "SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"

# 3.文件赋权
sudo chmod +x /usr/local/bin/gitea

第五步,查看 uid 和 gid,备用。

$ id git
uid=109(git) gid=113(git) groups=113(git)

3.部署 Gitea

[!NOTE]

通过 Docker 部署 Gitea 的重点在于将宿主的 ssh 映射给容器使用


使用 1panel 部署 Gitea,并自定义一些参数:

第一,SSH 端口:2222

第二,使用 git 用户的 UID 和 GID

 environment:
- USER_UID=109
- USER_GID=113

第三,添加目录绑定

volumes:
- /home/git/.ssh/:/data/git/.ssh

image-20250527141416997

4.验证是否成功

4.1 首次登陆

首次登录时填写安装信息:别的都可以使用默认,只需拉到页面底部,设置管理员用户。

image-20250406005452151

4.2 添加公钥

进入 用户设置 > SSH/GPG 密钥 > 新增秘钥 将日常使用的主机的 ssh 公钥添加到 gitea 服务器,日常使用可以免密拉取、推送仓库。

image-20250406005639827

4.3 创建测试仓库

image-20250406005807970

4.4 测试克隆

使用 git clone 命令拉取刚创建的仓库。

image-20250406005959203

[!Note]

部署和使用中遇到问题,优先排查 ssh 映射是否无误。