docker部署gitea
先阅读 Gitea 官方文档:https://docs.gitea.com/zh-cn/installation/install-with-docker#ssh-%E5%AE%B9%E5%99%A8%E7%9B%B4%E9%80%9A
尤其要了解 SSH 容器直通的步骤。
1.创建 git 用户
在即将部署 Gitea 的服务器上创建 git 用户
# 1.添加 git 账户
sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git
# 2.生成密钥对
sudo -u git ssh-keygen -t rsa -b 4096 -C "Gitea Host Key"
# 3.公钥添加到自身 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,备用。
ubuntu@web-server ~> id git
uid=109(git) gid=113(git) groups=113(git)
2.部署 Gitea
使用 1panel 部署 Gitea 并自定义一些参数:
-
SSH 端口:2222
-
编辑 compose 文件
-
使用 git 用户的id
environment:
- USER_UID=109
- USER_GID=113 -
添加目录绑定
volumes:
- /home/git/.ssh/:/data/git/.ssh
-
3.验证是否成功
首次登陆
拉到页面底部,设置管理员用户。其他信息默认。

添加公钥
用户设置 > SSH/GPG 密钥

创建测试仓库

测试克隆

总结:失败多次,反复部署把过程捋顺了写成文档。克隆时遇到权限问题就是 SSH 配置不 ok。