跳到主要内容

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.验证是否成功

首次登陆

拉到页面底部,设置管理员用户。其他信息默认。

image-20250406005452151

添加公钥

用户设置 > SSH/GPG 密钥

image-20250406005639827

创建测试仓库

image-20250406005807970

测试克隆

image-20250406005959203

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