使用Rancher和DroneCI建立超高速Docker CI/CD流水线(2)

这将在你的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 ]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/54e71c6b5b11a3ebc26b52a472f1d52a.html