作用
SSH直通的作用就是我们在 clone
仓库的时候不用写上特殊的端口,使用默认的 22
号端口。 clone
命令和正常命令一样。
#ssh直通 $ git clone git@192.168.3.59:zhangbing/fm650.git #非ssh直通 $ git clone git@192.168.3.59:222:zhangbing/fm650.git点击复制复制失败已复制
环境准备
宿主机建立 git
用户,参考:添加用户
接下来查看 git
用户的 uid
和 gid
:
$ id git uid=1001(git) gid=1001(git) groups=1001(git)点击复制复制失败已复制
docker-compose.yaml
注意
先不要着急启动容器,后面要有配置工作。
version: "3" services: server: image: gitea/gitea:1.16.5 container_name: gitea restart: always environment: - USER_UID=1001 - USER_GID=1001 - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=db:5432 - GITEA__database__NAME=gitea - GITEA__database__USER=gitea - GITEA__database__PASSWD=gitea networks: - gitea volumes: - gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - /home/git/.ssh/:/data/git/.ssh ports: - "3000:3000" - "222:22" depends_on: - db db: image: postgres:14.5-alpine3.16 restart: always environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea - POSTGRES_DB=gitea networks: - gitea volumes: - postgres:/var/lib/postgresql/data networks: gitea: external: false volumes: gitea: driver: local postgres: driver: local点击复制复制失败已复制
提示
主要区别与官方文档的 USER_UID
和 USER_GID
哦!
配置工作
Step1. 创建git用户的ssh秘钥
$ sudo -u git ssh-keygen -t rsa -b 4096 -C "Gitea Host Key"点击复制复制失败已复制
Step2. 创建gitea可执行文件
$ sudo vim /usr/local/bin/gitea #写入如下内容 ssh -p 2222 -o StrictHostKeyChecking=no git@127.0.0.1 "SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@" #赋予可执行权限 $ sudo chmod +x /usr/local/bin/gitea点击复制复制失败已复制
Step3. 增加验证文件
$ echo "$(cat /home/git/.ssh/id_rsa.pub)" >> /home/git/.ssh/authorized_keys点击复制复制失败已复制
接下来启动容器就好了!