持续集成 gitlab-ci+arteryDocker

最近学习了下docker ,听了一次卷宗团队王凯同学关于gitlab-ci的分享,加上公司有arterydocker这个平台。所以决定尝试配置一套自动集成部署。

下面的内容主要分为几个部分:

1. 新的流程
2. 关于gitlab-ci介绍
3. docker的简单介绍
4. arteryDocker简单介绍
5. gitlab-ci +arteryDocker具体配置
6. 遇到的问题

如果只是需要了解,请看1,2,3。 如果需要具体尝试 请看剩下几条。

1.新的流程

新流程

当前由于arteryDocker平台不支持命令启动更新部署应用 所以 暂时只能支持到 每次提交自动生成镜像 并且自动推送到arteryDocker仓库,需手动点击平台上应用的重新部署按钮,从而完成部署。arteryDocker平台在7月底版本应该会支持远程调用重新部署启动应用。到时可实现全部自动化。

2.关于gitlab-ci介绍

gitlab-ci介绍

3.docker的简单介绍

docker简单介绍

推荐书籍:
docker --从入门到实践

4.arteryDocker简单介绍

借ADC上关于arteryDocker的介绍

ArteryDocker平台是以docker为底层核心开发的一套集部署、管理、调度、运维于一体的系统,它实现了传统的项目与docker进行完美结合。

优势:

• 封装
    应用发布包包含了所有所需要的环境
• 高效
    容器技术比虚拟机更加轻量,资源开销少,利用率高
• 智能
    应用占用资源在允许的范围内按需占用,系统能够及时有效统治警告,错误信息
• 安全
    所有应用与外界网络隔离,任何端口都需要进行路由的端口映射

我理解的arteryDocker平台是将docker很多功能做到可视化,并且增加一些命令的封装,将用户的操作尽可能的简单化。

详细介绍请见

5. gitlab-ci +arteryDocker具体配置

本文基于 centos7 gitlab 8.8.5 gitlab-ci-runner 1.11.2 docker 17.05.0
流程如下
1. 配置runner服务器环境(包含runner,maven,jdk,docker)
2. 书写dockerfile
3. 配置gitlab-ci.yml
4. arteryDocker平台使用
一、 配置runner服务器环境(包含runner,maven,jdk,docker)

  1. 安装maven,安装jdk (命令网上一大堆)
  2. 安装 runner

gitlab-ci介绍

  1. 安装docker (注意与runner在一台服务器上安装)
    docker --从入门到实践中centos安装docker章节。
    安装后 记得 启动docker 服务
    service docker start
    还有记得把gitlab-runner这个用户 加入docker组中 否则 docker-runner执行脚本 关于操作docker会报无权限。具体操作见第一个问题解决方案

4 . 整体流程

每次合并后,gitlab-ci找到指定runner 执行 .gitlab-ci.yml,gitlab-ci.yml见下图

.gitlab-ci.yml

runner 调用maven去打包,将打好的war包和项目中写好的dockerfile放入同一目录,然后将调用docker命令生成镜像,推送到artery平台,跟arteryDocker了解后,7月底的版本 arteryDocker会支持远程调用更换应用镜像、重新部署。

5 . 注意
① . runner执行命令时使用的是gitlab-runner这个用户执行的,一个是需要将该用户加入docker的group,否则执行命令报没有权限,第二个是需要将maven 本地repository的所有者改为gitlab-runner,不这样mvn操作时会报一堆不让删除等等的错误。
② . 关于dockerfile的书写 要注意dockerfiel文件名大小写的问题
③. 关于config中的配置 如果没有使用配置服务,或者获取时候没有从环境变量中获取,则要将config.properties放入数据卷中,启动时通过ENTRYPOINT将config文件替换。

Dockerfile
dzjz-entrypoint.sh

6. 遇到的问题

http://www.jianshu.com/p/941a0a034e4d

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,097评论 18 139
  • 一、持续集成(Continuous Integration) 要了解GitLab-CI与GitLab Runner...
    tsyeyuanfeng阅读 97,633评论 18 134
  • 作为程序员,代码是一定要写的,而且要天天写。在好多地方见过这样一种说法: 只会写程序的程序员不是好程序员 当然,我...
    cjzhao阅读 16,221评论 19 89
  • 本文以Gitlab来讲解Git使用以及持续集成, 持续集成采用的是Gitlab CI. 其他代码托管网站,如Git...
    x1596357阅读 5,337评论 0 6
  • 咸亭小筑, 望春波湖水, 意语断桥。 归来或问, 风有零落谁? 一远长山, 西京犹望, 君知当归否...
    半空风清阅读 171评论 4 2