Drone持续集成

Drone是一个用Go语言开发的基于容器运行的持续集成软件。

请注意,目前Drone1.0.0rc已经发布,但是本文所有内容均基于Drone0.8.0。

安装

Drone可以通过Docker安装,请参考https://0-8-0.docs.drone.io/installation/

运行时需要通过环境变量设置与Drone集成的版本控制系统。drone支持的版本控制系统包括GitHub,Gogs,GitLab等。我使用的是Gogs。

你可以修改后使用下面的compose文件。

version: '2'
services:
  drone-server-gogs:
    image: drone/drone:0.8
    ports:
      - 8020:8000
      - 9000
    volumes:
      - ./drone-gogs-data/:/var/lib/drone/
    restart: always
    environment:
      - DRONE_OPEN=false
      - DRONE_HOST=https://drone-ci.example.com
      - DRONE_ADMIN=admin
      - DRONE_GOGS=true
      - DRONE_GOGS_URL=https://git.example.com/
      - DRONE_SECRET=secret
drone-agent-gogs:
    image: drone/agent:0.8
    command: agent
    restart: always
    links:
      - drone-server-gogs
    depends_on:
      - drone-server-gogs
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_SERVER=drone-server-gogs:9000
      - DRONE_SECRET=secret