docker gitea搭建
docker-compose.yml
version: '3.8'
services:
gitea:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/gitea/gitea:1.22.3
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- DB_TYPE=sqlite3
restart: always
volumes:
- ./data:/data
ports:
- "3000:3000" # Gitea 的 Web UI 端口,也是通过http 克隆项目的端口
- "2222:22" # 如果这里使用22端口. 拉取项目的时候可以省去端口号.因为通过ssh key clone项目用的是22端口
启动
需要注意的时候, git要使用22端口.默认情况下22端口被宿主机的ssh占用.所以需要修改宿主机下的Port 22 为其他端口, 修改后切记放行新的ssh端口,防止无法ssh .
systemctl resetart sshd
重新启动sshd
docker-compose up -d
启动成功后,访问http://宿主机IP:3000访问web控制台.注册一个管理员
需要注意的是,如果端口改成非22端口了,比如2222.那么初始化安装的时候, [SSH Server Port]要修改ssh端口为2222,而不是默认的22 这里的修改的2222是指以后拉取项目用的端口地址,而不是容器的内部端口,内部端口仍然是22
注册好管理员后, 通过命令行把注册禁用掉
docker exec -it gitea bash
vi /data/gitea/conf/app.ini
# 找到 DISABLE_REGISTRATION, 将值从false,改为true.
修改完后,退出docker容器. 重启gitea docker restart gitea
ssh key clone
gitea 默认使用3071长度的ssh key拉取项目.所以Windows或者Linux默认的2048无法使用.
生成3071长度的密钥
3071 表示 位长的 RSA 密钥
ssh-keygen -t rsa -b 3071
生成之后, 登录gitea web控制台将公钥添加到SSH / GPG Kyes 中 就可以正常clone项目了
补充说明
通过ssh拉取项目
推荐搭建gitea的时候使用22端口
- 使用22端口拉取项目
git clone git@git服务器IP/项目组或者用户名/work-record.git
- 使用2222端口拉取项目
git clone ssh://git@git服务器IP:2222/项目组或者用户名/work-record.git