阅读203 返回首页    go 阿里云 go 技术社区[云栖]


在阿里云容器服务上,轻松搭建Concourse CI

Concourse CI是一款CI/CD工具,它的魅力在于极简设计,被广泛应用于Cloud Foundry各个模块的CI/CD。阿里云也推出了CI工具CodePipeline,开箱即用,推荐试用。

image

Concourse CI官方提供了标准的Docker镜像,在阿里云容器服务部署一套 Concourse CI应用是很轻松的一件事儿。

准备Docker集群

首先,在阿里云容器服务控制台创建一个集群。简单起见,这里节点数为1,网络类型为经典网络。

集群创建过程大约几分钟,成功后的状态如下图:

image

部署Concourse CI

  • 在容器服务控制台创建应用, 填写基本信息如下图:

    image

  • 用compose模板来创建应用,模板如下:

version: '2'
services:
  concourse-db:
    image: postgres:9.5
    privileged: true
    environment:
      POSTGRES_DB: concourse
      POSTGRES_USER: concourse
      POSTGRES_PASSWORD: changeme
      PGDATA: /database
  concourse-web:
    image: concourse/concourse
    links: [concourse-db]
    command: web
    privileged: true
    depends_on: [concourse-db]
    ports: ["8080:8080"]
    volumes: ["/keys/web:/concourse-keys"]
    restart: unless-stopped # required so that it retries until conocurse-db comes up
    environment:
      CONCOURSE_BASIC_AUTH_USERNAME: concourse
      CONCOURSE_BASIC_AUTH_PASSWORD: changeme
      CONCOURSE_EXTERNAL_URL: "${CONCOURSE_EXTERNAL_URL}"
      CONCOURSE_POSTGRES_HOST: concourse-db
      CONCOURSE_POSTGRES_USER: concourse
      CONCOURSE_POSTGRES_PASSWORD: changeme
      CONCOURSE_POSTGRES_DATABASE: concourse
  concourse-worker:
    image: concourse/concourse
    privileged: true
    links: [concourse-web]
    depends_on: [concourse-web]
    command: worker
    volumes: ["/keys/worker:/concourse-keys"]
    environment:
      CONCOURSE_TSA_HOST: concourse-web
    dns: 8.8.8.8
  • 在创建应用之前需要填写模板参数, CONCOURSE_EXTERNAL_URL,值为 https://your-ecs-public-ip:8080,如下图所示:

    image

  • 创建之后会启动3个服务,DB、Web和Worker,如下图:

    image

  • 最后需要开启8080端口的入网权限:

    image

  • 至此,Concourse CI部署完成,在浏览器输入https://your-ecs-public-ip:8080即可访问。用户名密码是concourse/changeme
    image

第一个CI任务(Hello world)

  • 安装CLI客户端,在上一步浏览器中下载对应您操作系统的CLI. 本例以ECS(ubuntu16.04),安装之后可以查看一下版本
fly -v
3.4.0
  • 连接Target, 用户名密码是concourse/changeme
fly -t lite login -c https://your-ecs-public-ip:8080
logging in to team 'main'

username: concourse
password:

target saved
  • 一个简单的配置模板, 保存为hello.yml
jobs:
- name: hello-world
  plan:
  - task: say-hello
    config:
      platform: linux
      image_resource:
        type: docker-image
        source: {repository: ubuntu}
      run:
        path: echo
        args: ["Hello, world!"]
  • 注册任务
fly -t lite set-pipeline -p hello-world -c hello.yml
  • 启动任务
fly -t lite unpause-pipeline -p hello-world
  • 成功执行的界面如下

image

最后

本文仅仅是安装引导,欢迎探索Concourse CI更多特性。

参考

https://concourse.ci/docker-repository.html
https://concourse.ci/hello-world.html

最后更新:2017-08-25 01:02:21

  上一篇:go  【OSS 最佳实践】JS SDK使用STS方式实现断点续传
  下一篇:go  区块链未来会发展成什么模样?