使用gitea搭建源码管理【0到1架构系列】
使用开源搭建Git源码方案,gitlab和gitea是两个不错的方案,gitlab以前简单易用,现在功能复杂且对开源并不友好,gitea一直保持功能单一易用且完全开源,个人推荐gitea。
通过容器安装比较简单易用,使用镜像加速器拉取或许更快些。
docker pull gitea/gitea
gitea需要数据库储存,可以选择mysql,postgres,默认已经事先搭建mysql数据库作用储存。
在主机创建文件夹来做数据卷。
mkdir giteaData
给权限(或者不给)
chmod 755 /giteaData
编写docker-compose.yml文件,使用docker命令也行,主要是参数比较多,使用docker-compose.yml更方便管理。
version: "3"
services:
server:
image: gitea:latest
container_name: gitea
environment:
- GITEA_DATABASE_TYPE=mysql #选择mysql
- GITEA_DATABASE_HOST=192.168.3.116 #数据库IP地址
- GITEA_DATABASE_PORT_NUMBER=3306 #数据库端口
- GITEA_DATABASE_NAME=gitea #数据库名称
- GITEA_DATABASE_USERNAME=root #数据库账号
- GITEA_DATABASE_PASSWORD=123 #数据库密码
restart: always
volumes:
- /giteaData/git:/data/git/repositories #git数据卷,可以指定数据路径
- /giteaData/ssl:/data/ssl #配置HTTPS证书
- /etc/timezone:/etc/timezone:ro #同步时区
- /etc/localtime:/etc/localtime:ro #同步本地时间
ports:
- "3000:3000"
启动容器
docker-compose up -d
容器启动就初始化成功,访问网址:http://192.168.3.76:3000
创建一个仓库,然后同步代码上去。
同步代码之后可以通过配置Web钩子,来实现CI功能。
默认使用WebHook被禁止向其它域名发起Hook,需要配置
docker cp 7bbaf5e2864e:/data/gitea/conf/app.ini /root/app.ini
编辑app.ini文件,填写允许的主机。
[webhook]
ALLOWED_HOST_LIST = 192.168.3.* #充许向这个IP段发送webhook
[server]
PROTOCOL = https
ROOT_URL = https://git.example.com:3000/ #域名
HTTP_PORT = 3000 #端口
CERT_FILE = cert.pem #证书
KEY_FILE = key.pem #证书
[service]
DISABLE_REGISTRATION = true #禁止开放注册,设为true之后,由管理员后台添加账号
将文件拷回容器,重启
docker cp /root/app.ini 7bbaf5e2864e:/data/gitea/conf/app.ini
docker-compose restart