drone 1.0 的定时任务是一个不错的功能,早期的版本是必须使用cron 表达式的
最近发布的版本支持通过配置就可以了,很方便,只是目前比较简单的,支持小时、
天、周、月、年的模式
环境准备
- docker-compose 文件
version: '3'
services:
drone-server:
image: drone/drone:1.0.0-rc.1
ports:
- "80:80"
volumes:
- ./drone:/var/lib/drone/
environment:
- DRONE_OPEN=true
- DRONE_SERVER_HOST=drone-server
- DRONE_DEBUG=true
- DRONE_GIT_ALWAYS_AUTH=false
- DRONE_GOGS=true
- DRONE_GOGS_SKIP_VERIFY=false
- DRONE_GOGS_SERVER=http://gogs:3000
- DRONE_PROVIDER=gogs
- DRONE_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite
- DRONE_DATABASE_DRIVER=sqlite3
- DRONE_SERVER_PROTO=http
- DRONE_RPC_SECRET=ALQU2M0KdptXUdTPKcEw
gogs:
image: gogs/gogs
ports:
- "10022:22"
- "3000:3000"
volumes:
- ./data/gogs:/data
depends_on:
- mysql
mysql:
image: mysql:5.7.16
volumes:
- ./gogs/mysql:/var/lib/mysql
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
environment:
MYSQL_ROOT_PASSWORD: dalongrong
MYSQL_DATABASE: gogs
MYSQL_USER: gogs
MYSQL_PASSWORD: dalongrong
TZ: Asia/Shanghai
drone-agent:
image: drone/agent:1.0.0-rc.1
depends_on:
- drone-server
environment:
- DRONE_RPC_SERVER=http://drone-server
- DRONE_RPC_SECRET=ALQU2M0KdptXUdTPKcEw
- DRONE_DEBUG=true
- DOCKER_HOST=tcp://docker-bind:2375
docker-bind:
image: docker:dind
privileged: true
# command: --storage-driver=overlay
- 启动&&配置
项目使用gogs 进行git 管理,首先需要配置gogs,添加用户,创建简单的项目,
项目drone配置文件
kind: pipeline
name: default
steps:
- name: info
image: busybox
commands:
- echo "appdemo"
集成drone&&测试
- 集成效果
- cron 效果
- 步骤重启
说明,当时这个步骤只支持部分任务的,重新运行,对于已经运行完成之后,因为基于容器的共享存储已经删除,除非合适共享
参考资料
https://docs.drone.io/
https://docs.drone.io/config/pipeline/steps/
https://github.com/rongfengliang/drone-1.0-gogs
来源:oschina
链接:https://my.oschina.net/u/4332466/blog/3743707