1. 下载镜像
docker pull gitea/gitea:lastest
2. 部署容器
2.1 获取git用户的id, 命令
~/ id git uid=1001(git) gid=1001(git) groups=1001(git)
2.2 准备
切换到git用户,新建gitea的映射文件夹,并启动容器,这样能保证git用户和gitea容器一定能访问到文件夹且具有权限。
docker run --net mynetwork --ip 172.18.0.12 -d --restart always --name gitea -p 3000:3000 -p 127.0.0.1:2221:22 -v /data/docker/gitea/data:/data -v /data/docker/gitea/timezone:/etc/timezone:ro -v /data/docker/gitea/localtime:/etc/localtime:ro -v /home/git/.ssh/:/data/git/.ssh -e USER_UID=1001 -e USER_GID=1001 --privileged=true gitea/gitea:latest
3. Nginx配置
server { listen 80; server_name xxx.com; access_log /var/log/nginx/gitea_access.log; error_log /var/log/nginx/gitea_error.log; location / { proxy_pass http://172.18.0.12:3000$request_uri; # 转发到内部端口 proxy_set_header Host $host; # 设置请求头中的 Host proxy_set_header X-Real-IP $remote_addr; # 设置客户端真实 IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 传递原始 IP proxy_set_header X-Forwarded-Proto $scheme; # 传递协议类型 } location ~ /\.ht { deny all; } }
4. 修改仓库地址
https转http
修改文件gitea/data/gitea/conf/app.ini
ROOT_URL = http://xxx.com/
git仓库地址转换
因为是通过docker安装,所以仓库地址显示的docker内的地址,外部访问路径会有错误
服务器切换git用户,然后在该用户下通过ln -s 软链接到仓库的物理地址,这样能够使对git用户来讲,地址是正确的