drone 0.8.8 集成gogs 进行ci/cd 处理

drone 是一个不错的基于容器的ci/cd 工具,运行简单,同时插件也挺多,基本常见的轻量级的任务都是可以搞定的

环境准备

使用docker in docker

  • docker-compose 文件
version: '3'
services:
  gogs:
    image: gogs/gogs
    ports:
      - "10022:22"
      - "3000:3000"
    volumes:
      - ./data/gogs:/data
    depends_on:
      - mysql
  drone-db:
    image: mysql:5.7.16
    volumes:
      - ./gogs/mysql:/var/lib/mysql
    ports:
      - 3309:3306
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: dalongrong
      MYSQL_DATABASE: drone
      MYSQL_USER: drone
      MYSQL_PASSWORD: dalongrong
      TZ: Asia/Shanghai
  mysql:
    image: mysql:5.7.16
    volumes:
      - ./drone-db/mysql:/var/lib/mysql
    ports:
      - 3308:3306
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: dalongrong
      MYSQL_DATABASE: gogs
      MYSQL_USER: gogs
      MYSQL_PASSWORD: dalongrong
      TZ: Asia/Shanghai
  drone-server:
    image: drone/drone:0.8.8
    ports:
      - "8000:8000"
    volumes:
      - ./drone:/var/lib/drone/
    environment:
      - DRONE_OPEN=true
      - DRONE_HOST=http://10.6.197.9:8000 ## drone server 访问地址
      - DRONE_DEBUG=true
      - DRONE_DATABASE_DRIVER=mysql
      - DRONE_DATABASE_DATASOURCE=root:dalongrong@tcp(drone-db:3306)/drone?parseTime=true
      - DRONE_GOGS=true
      - DRONE_GOGS_URL=http://gogs:3000
      - DRONE_RPC_SECRET=ALQU2M0KdptXUdTPKcEw
      - DRONE_SECRET=ALQU2M0KdptXUdTPKcEw
  drone-agent:
    image: drone/agent:0.8.8
    depends_on:
      - drone-server
    environment:
      - DRONE_SERVER=drone-server:9000
      - DRONE_SECRET=ALQU2M0KdptXUdTPKcEw
      - DRONE_DEBUG=true
      - DOCKER_HOST=tcp://docker-bind:2375
  docker-bind:
     image: docker:dind
     privileged: true
     command: --storage-driver=overlay ## docker 文件存储的类型,需要结合操作系统,或者选择默认
  • 启动并配置gogs
    配置比较简单,参考界面提示进行操作就可以了
docker-compose up -d
  • 效果

配置drone 构建的项目

  • 项目添加.drone.yml
pipeline:
  frontend:
    image: node:9
    commands:
    - echo 'this is a demo app'
    - echo 'demoapp' 
  • 登陆drone 启用构建

    说明,因为都是本地环境,会有一个webhook url 的问题,drone 调用api 写入的是localhost:8000 造成webhook 无法生效,可以参考如下配置
    进入到gogs 项目

修改代码并测试

  • 修改gogs git 仓库代码
    很简单,随便修改几个文件就可以了
  • 效果

参考资料

https://0-8-0.docs.drone.io/install-for-gogs/
https://0-8-0.docs.drone.io/installation/

posted on   荣锋亮  阅读(1022)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2017-11-15 lapis cockroachdb 数据访问试用
2017-11-15 cockroachdb 安装试用(单机伪分布式)
2017-11-15 lapis 数据库配置
2017-11-15 lapis 路由
2017-11-15 lapis http verb 处理
2017-11-15 lapis 基本开发
2017-11-15 lapis 框架安装试用

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示