胖胖的枫叶
主页
博客
知识图谱
产品设计
数据分析
企业架构
项目管理
效率工具
全栈开发
后端
前端
测试
运维
数据
面试
  • openJdk-docs
  • spring-projects-docs
  • mysql-docs
  • redis-commands
  • redis-projects
  • apache-rocketmq
  • docker-docs
  • mybatis-docs
  • netty-docs
  • journaldev
  • geeksforgeeks
  • 浮生若梦
  • 后端进阶
  • 并发编程网
  • 英语肌肉记忆锻炼软件
  • 墨菲安全
  • Redisson-docs
  • jmh-Visual
  • 美团技术
  • MavenSearch
主页
博客
知识图谱
产品设计
数据分析
企业架构
项目管理
效率工具
全栈开发
后端
前端
测试
运维
数据
面试
  • openJdk-docs
  • spring-projects-docs
  • mysql-docs
  • redis-commands
  • redis-projects
  • apache-rocketmq
  • docker-docs
  • mybatis-docs
  • netty-docs
  • journaldev
  • geeksforgeeks
  • 浮生若梦
  • 后端进阶
  • 并发编程网
  • 英语肌肉记忆锻炼软件
  • 墨菲安全
  • Redisson-docs
  • jmh-Visual
  • 美团技术
  • MavenSearch
  • 博客

    • 博客迁移说明
    • 2024年
    • 2023年
    • 2022年
    • 2021年
    • 2020年
    • 2019年
    • 2018年

之前都是用jenkins+gitee 做的CI方案,发现朋友在使用Drone构建。运行资源占用比较小。适合个人做CI。

Drone

Drone是一款基于容器技术的持续集成工具,使用简单的YAML配置文件即可完成复杂的自动化构建、测试、部署任务,在Github上已经有22K+Star。

  • 相比于jenkins使用起来简介很多,大多时候没那么多需求。这个也足够满足基础需求。
  • 使用gitee + drone 演示
  • 官方文档

快速安装

采用docker-compose部署。

version: '3'
networks:
  network-drone:
    driver: bridge
services:
  server:
    container_name: server
    image: drone/drone:2
    networks:
      - network-drone
    ports:
      - "9000:80"
    volumes:
      - ./data/drone/:/var/lib/drone/
      - ./data/data/:/data/
    environment:
      - DRONE_SERVER_HOST=xxx.www.com # 你的服务器域名或ip
      - DRONE_SERVER_PROTO=https # 使用的协议http或者https
      - DRONE_GITEE_CLIENT_ID= #gitee生成的OAuth2客户端ID
      - DRONE_GITEE_CLIENT_SECRET= #gitee生成的OAuth2客户端密钥
      - DRONE_RPC_SECRET= # openssl rand -hex 16 可以用这个命令生成
      - DRONE_USER_CREATE=username:name,admin:true # 默认创建账户,设置你的gitee用户名,这样你登录后是作为管理员
      # drone各日志功能
      - DRONE_LOGS_DEBUG=true
      - DRONE_LOGS_TRACE=true
      - DRONE_LOGS_COLOR=true
      - DRONE_LOGS_PRETTY=true
      - DRONE_LOGS_TEXT=true
  runner:
    container_name: runner
    image: drone/drone-runner-docker:1
    networks:
      - network-drone
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      # 与drone server通信的协议http/https
      - DRONE_RPC_PROTO=http
      # drone server服务器
      - DRONE_RPC_HOST=server
      # drone server rpc密钥
      - DRONE_RPC_SECRET= #自定义的Drone与runner通信密钥
      # runner name,标识runner
      - DRONE_RUNNER_NAME=runner
      # runner最多同时执行任务数
      - DRONE_RUNNER_CAPACITY=2
      # runner使用协议http/https
      - DRONE_HTTP_PROTO=http
      # runner的host,server向runner主动推送任务时使用此配置,如果在不同服务器此处应该设置为runner的域名或ip,此处是同一服务器,所以使用docker service name是可以直接访问的
      - DRONE_HTTP_HOST=runner
      # 是否开启runner ui
      - DRONE_UI_DISABLE=true
      # 访问runner ui时的登录用户名
      - DRONE_UI_USERNAME=admin
      # 访问runner ui时的登录密码
      - DRONE_UI_PASSWORD=pwd

需要修改配置

  • 使用docker-compose -f docker-compose.yaml up -d 构建并启动

  • 如果gitee配置没问题,登陆会跳转到gitee授权界面。

EDN

Last Updated:
Contributors: 庆峰