在阿里云容器服务上,轻松搭建Concourse CI
Concourse CI是一款CI/CD工具,它的魅力在于极简设计,被广泛应用于Cloud Foundry各个模块的CI/CD。阿里云也推出了CI工具CodePipeline,开箱即用,推荐试用。
Concourse CI官方提供了标准的Docker镜像,在阿里云容器服务部署一套 Concourse CI应用是很轻松的一件事儿。
准备Docker集群
首先,在阿里云容器服务控制台创建一个集群。简单起见,这里节点数为1,网络类型为经典网络。
集群创建过程大约几分钟,成功后的状态如下图:
部署Concourse CI
-
在容器服务控制台创建应用, 填写基本信息如下图:
用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
,如下图所示: -
创建之后会启动3个服务,DB、Web和Worker,如下图:
-
最后需要开启8080端口的入网权限:
至此,Concourse CI部署完成,在浏览器输入
https://your-ecs-public-ip:8080
即可访问。用户名密码是concourse/changeme
第一个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
- 成功执行的界面如下
最后
本文仅仅是安装引导,欢迎探索Concourse CI更多特性。
参考
https://concourse.ci/docker-repository.html
https://concourse.ci/hello-world.html
最后更新:2017-08-25 01:02:21