搭建一个git(Gitea),并且给它配上一个CI(Drone)
前提
Ubuntu
安装Docker
官方文档 Install Docker Engine on Ubuntu | Docker Documentation
步骤
- 跟着官方文档跑即可
安装Gitea
不用看的官方文档 使用 Docker 安装 - Docs (gitea.io)
步骤
- 创建一个目录,接下来的操作都需要在此目录下完成
- 创建一个名为
docker-compose.yml的文件,将以下内容粘贴到文件中
docker-compose yml文件详解_游泳的山鸡的博客-CSDN博客
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.17.3
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000" #容器的 3000 端口和宿主机的 3000 端口建立映射关系
- "222:22"
- 创建容器并且把它跑起来 (使用命令
docker compose up -d) - 接下来就可以访问
ip:3000,即可看到初始页面。**红框中的值一定要填写正确,不能使用localhost **
![image]()
- 设置管理员账号
![image]()
- 如果配置完之后发生了类似下图的错误,以下介绍了两种
简单粗暴的解决方法。如果没有报错,恭喜可以进入下一章了
- 解决方法一:打开配置文件
./gitea/conf/app.ini,修改其中的配置项,具体参考 使用 Docker 安装 - Docs (gitea.io) - 方法二:删除整个Gitea配置文件目录
./gitea,再访问ip:3000即可重新配置
- 解决方法一:打开配置文件
安装Drone,并且配置CI
喜欢倒序的官方文档 Drone CI / CD | Drone
步骤
- 拉取镜像
docker pull drone/drone-runner-docker:1 - 在Gitea里创建OAuth2 应用许可
- 执行下面的命令(注意修改IP,并且将刚刚创建的许可信息替换
sudo docker run \
--volume=/var/lib/drone:/data \
--env=DRONE_GITEA_SERVER=http://192.168.133.101:3000 \ #Gitea的IP和端口
--env=DRONE_GITEA_CLIENT_ID=0c1bc5ac-ec7c-4465-af35-e5cfc28dd7fc \ #Gitea里创建的OAuth2 客户端ID
--env=DRONE_GITEA_CLIENT_SECRET=gto_rxhaxqpruegdue4iqvaq7kwgec3ge3c3ak7yqsilx6rp3hrffqta \ #客户端密钥
--env=DRONE_RPC_SECRET=super-duper-secret \ #通信管道名称,随便写
--env=DRONE_SERVER_HOST=192.168.133.101:4000 \ #配置Drone的IP和端口
--env=DRONE_SERVER_PROTO=http \
--env=DRONE_USER_CREATE=username:juzipi,admin:true \ #创建管理员账号
--publish=4000:80 \
--publish=4001:443 \
--restart=always \
--detach=true \
--name=drone \
drone/drone:2
sudo docker run --detach \
--volume=/var/run/docker.sock:/var/run/docker.sock \
--env=DRONE_RPC_PROTO=http \
--env=DRONE_RPC_HOST=192.168.137.101:4000 \ #填写Drone的IP和端口
--env=DRONE_RPC_SECRET=super-duper-secret \ #通信管道名称,要与上面一样
--env=DRONE_RUNNER_CAPACITY=2 \
--env=DRONE_RUNNER_NAME=one-runner \
--publish=5000:3000 \
--restart=always \
--name=runner \
drone/drone-runner-docker:1
-
去Drone为项目设置权限
![image]()
-
搞完之后去Gitea里看看Web钩子,测试一下钩子是否生效
-
如果遇到下图所示的问题
![image]()
#打开编辑 /data/gitea/conf/app.ini [webhook] ALLOWED_HOST_LIST = 192.168.2.8 -
重启Gitea
docker restare gitea





浙公网安备 33010602011771号