这将在你的drone=server主机上运行一个Drone���务,并为你环境上的其他每一台主机运行一个drone代理。我们强烈推荐你使用MySQL备份Drone,设定DATABASE_DRIVER和DATASOURCE值即可实现。在本例中我们使用了一个小的RDS实例。
当栈启动运行后,你可以登录到Drone服务的IP地址,打开一个仓库用于搭建(从账户菜单)。这里你会注意到Drone UI的每一个仓库都没有配置。这一切都需要一个.drone.yml文件来负责。
添加搭建配置
我们来搭建并测试一个Node.js项目,添加一个.drone.yml文件到你的仓库,就像这样:
pipeline:
build:
image: node:6.10.0
commands:
- yarn install
- yarn test
文件的内容非常简洁,你只需在搭建步骤设置放置仓库代码的容器镜像,指定要在该容器中运行的命令即可。
其他的项目也可以由Drone插件管理,这些插件相当于针对一个任务的容器。而且因为插件都在Docker Hub上,你不需要安装它们,只需将它们添加到.drone.yml文件中即可。
下面是一个详细使用Slack、ECR和Rancher插件创建.drone.yml的例子:
pipeline:
slack:
image: plugins/slack
webhook: <your slack webhook url>
channel: deployments
username: drone
template: "<{{build.link}}|Deployment #{{build.number}} started> on <http://github.com/
{{repo.owner}}/{{repo.name}}/tree/{{build.branch}}|{{repo.name}}:{{build.branch}}> by {{build.author}}"
when:
branch: [ master, staging ]
build:
image: <your base image, say node:6.10.0>
commands:
- yarn install
- yarn test
environment:
- SOME_ENV_VAR=some-value
ecr:
image: plugins/ecr
access_key: ${AWS_ACCESS_KEY_ID}
secret_key: ${AWS_SECRET_ACCESS_KEY}
repo: <your repo name>
dockerfile: Dockerfile
storage_path: /drone/docker
rancher:
image: peloton/drone-rancher
url: <your rancher url>
access_key: ${RANCHER_ACCESS_KEY}
secret_key: ${RANCHER_SECRET_KEY}
service: core/platform
docker_image: <image to pull>
confirm: true
timeout: 240
slack:
image: plugins/slack
webhook: <your slack webhook>
channel: deployments
username: drone
when:
branch: [ master, staging ]
status: [ success, failure ]