部署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

4.验证 是否成功
4.1 首次登陆
首次登录时填写安装信息:别的都可以使用默认,只需拉到页面底部,设置管理员用户。

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

4.3 创建测试仓库

4.4 测试克隆
使用 git clone
命令拉取刚创建的仓库。

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