Drone Gogs自动构建

作者: SetZero | 来源:发表于2017-02-21 15:54 被阅读654次

一、前提条件

  • 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进行自动构建了。

相关文章

网友评论

  • 无处安放的menta:```
    docker run -i -t -d --name=gogs -p 10022:22 -p 10080:3000 -v /Users/wyc/data/dockerdata:/data/dockerdata gogs/gogs:latest

    ```
    这样起来gogs,http://192.168.18.188:10080是gogs的页面,
    官网的docker-compose,运行起来server一直是restaring状态。
    使用楼主这个例子,也是出现这个问题,请问楼主知道是为什么吗?

    ```
    version: '2'

    services:
    drone-server:
    image: drone/drone:0.8

    ports:
    - 8000:8000
    - 9000
    volumes:
    - /Users/wyc/data/dockerdata/drone:/var/lib/drone/
    restart: always
    environment:
    - DRONE_OPEN=true
    - DRONE_ADMIN=admin
    - DRONE_GOGS=true
    - DRONE_GOGS_URL=http://192.168.18.188:10080
    - DRONE_SECRET=123456

    drone-agent:
    image: drone/agent:0.8
    command: agent
    restart: always
    depends_on:
    - drone-server
    volumes:
    - /Users/wyc/data/dockerdata/run/docker.sock:/var/run/docker.sock
    environment:
    - DRONE_SERVER=ws://192.168.18.188/ws/broker
    - DRONE_SECRET=123456
    ```
    8834094691b6:你没有配置正确的DRONE_HOST,打印容器日志可以看到错误信息

本文标题:Drone Gogs自动构建

本文链接:https://www.haomeiwen.com/subject/cddhwttx.html