搭建一个git(Gitea),并且给它配上一个CI(Drone)

前提

Ubuntu

安装Docker

官方文档 Install Docker Engine on Ubuntu | Docker Documentation

步骤

  • 跟着官方文档跑即可

安装Gitea

不用看的官方文档 使用 Docker 安装 - Docs (gitea.io)

步骤

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
  • 如果配置完之后发生了类似下图的错误,以下介绍了两种简单粗暴的解决方法。如果没有报错,恭喜可以进入下一章了
    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

posted @ 2022-12-12 15:45  橘子皮u  阅读(95)  评论(0)    收藏  举报