Gitea是一个安装便捷,轻量级的自建 Git 服务,通过Docker非常容易部署与迁移
本文参考自gitea的文档:https://docs.gitea.com/zh-cn/
首先创建一个gitea的文件夹并进入
shmkdir gitea-docker
cd gitea-docker
随后创建docker-compose.yml
文件,并编辑之
shtouch docker-compose.yml
nano docker-compose.yml
编辑docker-compose.yml
如下
ymlversion: "2"
services:
server:
image: docker.gitea.com/gitea:latest-rootless
restart: always
volumes:
- ./data:/var/lib/gitea
- ./config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:2222"
按Ctrl
+S
保存,并按Ctrl
+X
退出编辑。随后创建两个文件夹config
与data
shmkdir config data
赋予它们权限
shsudo chown 1000:1000 config/ data/
随后,启动容器
sudo docker-compose up -d
如果将gitea配置到某个域名,应该如此配置nginx
nginxserver { ... location / { client_max_body_size 512M; proxy_pass http://localhost:3000; proxy_set_header Connection $http_connection; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
然后重启nginx
shsudo nginx -s relaod
比如我想把gitea反向代理到gbwater.icu/git
,那么首先应当编辑config/app.ini
shnano config/app.ini
随后将ROOT_URL
配置改为
shROOT_URL = https://gbwater.icu/git/
将nginx配置为
nginxserver { ... location ~ ^/(gitea|v2)($|/) { client_max_body_size 512M; # 确保 nginx 使用未转义 URI, 按原样保持 "%2F"。 确保 nginx 去除 "/gitea" 子路径前缀, 按原样传递 "/v2"。 rewrite ^ $request_uri; rewrite ^(/gitea)?(/.*) $2 break; proxy_pass http://127.0.0.1:3000$uri; # 其他的常规 HTTP 表头,见上面“使用 Nginx 作为反向代理服务”小节的配置 proxy_set_header Connection $http_connection; proxy_set_header Upgrade $http_upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
随后重启gitea与nginx
shsudo docker stop gitea-docker-server-1 sudo docker-compose up -d sudo nginx -s reload
这么做是不推荐的,已知的问题是,在本地使用git登录时会跳转到不带/git/
的路径
本文作者:GBwater
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!