Drone Gogs自动构建

一、前提条件

  • 1、安装 Docker、Docker-Compose

二、安装Gogs、Drone

  • 将以下代码复制到新建的docker-compose.yml文件中,执行启动命令:docker-compose up -d
  • 该docker-compose启动Drone的是一个以Sqlite做为存储数据库,可选配mysql,postgres可根据自己情况进型配置,见文档
version: '2'

services:
  gogs:
    image: registry.saas.hand-china.com/tools/gogs:latest
    ports:
      - "10022:22"
      - 10080:3000
    volumes:
      - /vagrant/gogs-data:/data
    restart: always
  mysql:
    image: registry.saas.hand-china.com/tools/mysql:5.7.12
    ports:
      - 3306:3306
    volumes:
      - /vagrant/mysql-data:/var/lib/mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=gogs
  drone-server:
    image: registry.saas.hand-china.com/tools/drone:0.5
    ports:
      - 80:8000
    volumes:
      - /var/lib/drone:/var/lib/drone
    restart: always
    environment:
      # 开启注册,此配置允许任何人自注册和登录系统
      - DRONE_OPEN=true
      # 设置管理员用户
      - DRONE_ADMIN=adminuser
      # 开启Gogs驱动
      - DRONE_GOGS=true
      # Gogs服务器地址
      - DRONE_GOGS_URL=http://192.168.56.21:10080
      # 此SECRET为任意值
      - DRONE_SECRET=handhand
  drone-agent:
    image: registry.saas.hand-china.com/tools/drone:0.5
    command: agent
    restart: always
    depends_on: [ drone-server ]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      # Drone Server 地址
      - DRONE_SERVER=ws://192.168.56.21/ws/broker
      # 与Drone Server一致即可
      - DRONE_SECRET=handhand
  • Mysql启动成功后,将gogs数据库设置为UTF-8格式。


  • Gogs启动成功后,即可通过浏览器访问,第一次进入时按提示设置信息即可。
  • Drone启动成功后,即可通过浏览器访问,使用Gogs账号登录,找到项目开启管理即可。


上图配置了名为demo项目触发Push事件时进行自动构建。

三、安装Drone CLI

  • 在Linux系统上安装
wget http://downloads.drone.io/release/linux/amd64/drone.tar.gz | tar zx
sudo install -t /usr/local/bin drone
  • 设置用户认证
# drone-server地址
export DRONE_SERVER=http://192.168.56.21
# token刚才drone的管理界面account中点show_token
export DRONE_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZXh0IjoiYWRtaW51c2VyIiwidHlwZSI6InVzZXIifQ.p2KhqJ-hl7lVdWawKtowBucWRANmYLv6ZqY64-gE660

四、自动构建yml文件配置

  • 在项目根路径新建.drone.yml文件,添加以下代码进行测试
workspace:
  base: /go
  path: src/192.168.56.21/adminuser/demo

pipeline:
  build:
    image: registry.saas.hand-china.com/tools/golang:latest
    commands:
      - go get
      - go build
      #- go test

services:
  postgres:
    image: registry.saas.hand-china.com/tools/postgres:9.4.5
    environment:
      - POSTGRES_USER=myapp
  • 此时Push代码到项目时,就会触发Drone进行自动构建了。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,280评论 19 139
  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,687评论 15 147
  • Docker基础资料 安装docker $ sudo apt-get install docker.io 查看本地...
    Sherry凤阅读 499评论 0 0
  • 前言 前段时间的工作中有接触到接口测试,测试代码以maven工程的形式编写,使用testNG测试框架。工作中,每次...
    Ivanlfli阅读 3,954评论 7 24
  • 上次没能按时交作业,终于补上,给老师添麻烦了。 1.阅读套餐: 文言文3成+旧小说3成+现代白话文4成。 近期阅读...
    泫之秋水阅读 372评论 2 0