Drone Gogs自动构建
2017-02-21 本文已影响654人
SetZero
一、前提条件
- 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进行自动构建了。