基于Docker的持续交付系列( 二):阿里云code帮你实现持续交付第一步

前言

        在上一篇博文:基于docker的持续交付系列(一):如何将app与docker整合并部署中,我们对app与Docker的整合、部署进行了简单介绍, 但在实践中你会发现,每当你修改代码之后,都要手动push代码,build image,push image以及重新部署,整个流程走下来繁琐且耗时较长,给我们提倡的持续交付徒增了许多烦恼。在容器hub和阿里云code两个平台的合力之下,改进的第一步已经实现,让我们细细来看。


用到的工具

        同样,我们还是使用到了下述几个平台:

  • 使用的的代码托管工具为阿里云code;
  • 使用的容器镜像服务为阿里云开发者平台;
  • 最终的产品镜像将部署到阿里云容器服务
    上;

操作步骤

创建关联了阿里云code的镜像仓库

  • 我们可以看到,目前容器hub已经支持关联阿里云code的代码仓库,相比于github和bitbucket,阿里云code提供了如丝般顺滑的速度(从拉取用户信息和代码库列表就能知道)。
  • 新的镜像仓库可以按如下配置进行创建,需要注意的是勾选“代码变更时自动构建镜像”和“海外机器构建”两个选项(勾选后者是为了保证镜像的构建速度)

push代码

        现在我们对代码进行修改,为了直观的表现出来,我们将代码库中java-with-docker/src/main/webapp下的index.html进行修改,将原来的“step1”更换为“步骤1”,重新进行编译:

$ mvn clean package -D maven.test.skip=ture

编译完毕后,将新的产出物一并提交到代码仓库。

镜像重新编译

可以看到,push代码触发了镜像的自动编译:

更新容器服务中的应用

        我们可以通过容器服务提供的“重新部署”按钮或者“触发器链接”来实现应用的重新部署,在此过程中,应用中的服务将更新最新的docker镜像。部署完成后,我们访问url就可以看到修改过后的页面了:

        当然,容器hub现在也支持webhook的配置,也就是可以配置新镜像编译完之后的回调地址,我们在此处填入“触发器链接”的url,就可以实现流程的自动化:


总结

        现在我们已经可以做到在push代码之后,直接触发镜像的构建。但是,依旧存在以下几个不尽如人意的地方:

  • 我们需要本地进行app的编译,并将其上传代码库才能将其与Docker进行整合;
  • 提交代码直接进行了镜像编译,但我们还不知道我们提交的代码是否正确,也就是还没有进行测试的考验,比如上述将“step1”改为“步骤1”的修改显然与页面整体风格不符,是一次错误的修改,不应该被发布;
  • 容器服务中应用的自动部署,目前还仅仅只能实现镜像的更新,对于编排模板中的参数配置,只能通过页面编辑或调用open API的方式来实现,以及目前一个“触发器链接”只能用来更新一个应用,如果要批量更新还需要较为繁琐的流程。

对于第一点,可能有人会说,我们可以把app编译的过程也加入Dockerfile,这样在镜像编译的过程中就可以同时完成app的编译。问题是,这样做会将app的编译环境和生产环境混淆,在本文的例子中,tomcat所依赖的是java:7-jre,但如果我们想在容器中执行

$ mvn clean package -D maven.test.skip=ture

则必须安装java的jdk,这样显然是不合时宜的“曲线救国”方式。


展望

        阿里云持续交付平台 团队与容器服务团队正在合力解决上述问题,比如支持用户自定义编译/测试环境,支持功能更丰富的图形化发布功能等等,相信不久的将来,基于Docker的持续交付将以更加优雅的方式展现在用户面前。

时间: 2024-10-30 21:10:45

基于Docker的持续交付系列( 二):阿里云code帮你实现持续交付第一步的相关文章

利用阿里云容器服务打通TensorFlow持续训练链路

本系列将利用Docker和阿里云容器服务,帮助您上手TensorFlow的机器学习方案 第一篇:打造TensorFlow的实验环境 第二篇:轻松搭建TensorFlow Serving集群 第三篇:打通TensorFlow持续训练链路 第四篇:利用Neural Style的TensorFlow实现,像梵高一样作画 第五篇:轻松搭建分布式TensorFlow训练集群(上) 本文是该系列中的第三篇文章, 将为您介绍如何利用阿里云的服务快速搭建TensorFlow从训练到服务的交付平台. 随着goog

[容器Hub服务]基于阿里云Code的仓库构建

阿里云Code 容器Hub服务支持Github.Bitbucket作为代码源的仓库构建,但是为了向用户提供更加稳定可靠的服务,我们也引入了阿里云Code.阿里云Code代码托管平台实现了私有并且安全的代码管理服务,能提供目前最流行的分布式版本控制系统Git来有效管理项目. 创建仓库 默认情况下,如果你的容器Hub服务登录账户已经开通了阿里云Code,将会默认展示你在阿里云Code上的项目.如果你还没有开通过阿里云Code,那就不要犹豫,先点击绑定账号,去开通一下吧. 之后,你可以基于阿里云Cod

使用阿里云容器服务Jenkins实现持续集成之GitLab篇

前面有篇文章<使用阿里云容器服务Jenkins实现持续集成和Docker镜像构建>详细地描述了如何通过阿里云容器服务平台,快速创建Jenkins应用,结合GitHub实现持续集成和镜像构建.这次将使用阿里云容器服务搭建GitLab作为代码管理仓库,最后使用Jenkins插件aliyun-container-service-deploy实现部署应用,并支持蓝绿发布和标准发布两种发布策略. 1.部署Jenkins和Slave 1.1使用编排模板一键部署 阿里云容器服务的示例模板中已经内置支持了Je

[重要通知]CRP/阿里云Code 将于3月9日切换SSH Key

近期Windows用户反馈通过ssh公钥下载代码问题,现象如下: git push 报错: Unable to negotiate with XX: no matching host key type found. 主要是因为windows机器对ssh-dss算法支持不友好.为了更好的支持广大用户,CRP/阿里云Code将于2016年3月9日将公私钥的算法切换为ssh-rsa. 升级完成之后,您在使用ssh协议进行命令行代码操作(clone/pull/push等)时会看到如下图中的提示.    

阿里云将帮12306查票,各航企陆续公布春运“加班表”

1月27日消息,随着春节的临近,各个运输机构都在为备战春运而奋斗.对于外界有关阿里云与12306铁道部火车票订票网站合作的传闻,阿里云计算19日向南都记者予以确认,证实公司确实向12306提供了技术协助,负责承接12306网站75%的余票查询流量.至于合作的具体细节,阿里云方面称将适时对外公布. 与之相应的是,各大航空公司春运"加班表"也在日前陆续出台上线.南都记者昨日拿到的数据显示,2015年春运期间,全国民航客运量预计将达4752万人次,国内航线预计将在每周近5 .3万班定期航班的

使用阿里云容器服务Jenkins实现持续集成和Docker镜像构建(updated on 2017.3.3)

持续集成作为敏捷开发重要的一步,其目的在于让产品快速迭代的同时,尽可能保持高质量.每一次代码更新,都要通过自动化测试来检测代码和功能的正确性,只有通过自动测试的代码才能进行后续的交付和部署.本文主要介绍如何将时下最流行的持续集成工具之一的Jenkins结合阿里云容器服务,实现自动测试和镜像构建推送. 接下来的演示是如何通过阿里云容器服务Jenkins实现自动测试和Docker镜像构建,实现高质量的持续集成.具体场景:每次代码提交到GitHub上的nodejs的项目中,阿里云容器服务Jenkins

【快讯】阿里云欲建软件交易与交付第一平台,500家企业+3000款软件已入驻云市场

4月20日,云栖大会深圳峰会在大中华深圳喜来登酒店隆重召开.在以"云市场,大生态"为主题的<云市场分论坛>中,阿里云发布了全新的软件生态战略:对现有的云市场进行全面升级,意在打造软件交易与交付第一平台.包括用友.宏碁资讯.润和软件.驻云.空桥克拉.曙安数据.叠云.泛微.畅捷通.通达等近500家海内外知名软件商的逾3000款软件已入驻云市场,用户可在阿里云官网直接购买,一键开通"软件+云计算资源". 阿里云运营中心总经理 杨名 解读云市场定位和战略 正如A

阿里云系列——7.阿里云IIS系列详解(过程+通用+最新)

网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 先讲IIS系列,Linux部署以后再继续讲   先打开主机管理平台,确认域名绑定  2.net版本设置一下 3.数据库创建(两种方法:1,平台,2,SQLServer远程连接) http://dms-net.aliyun.com/ 用户名之类的看主机管理页面的显示 数据库远程连接:(出错就查看这个:http://www.cnblogs.com/dunitian/p/49827

阿里云欲建软件交易与交付第一平台 500家软件商已入驻云市场

4月19日消息,阿里云将在云栖大会·深圳峰会上发布全新的软件生态战略,对现有的云市场进行全面升级,打造软件交易与交付第一平台.包括用友.宏碁资讯.润和软件.驻云.空桥克拉.曙安数据.叠云.泛微.畅捷通.通达等近500家海内外知名软件商的逾3000款软件已入驻云市场,用户可在阿里云官网直接购买,一键开通"软件+云计算资源". 正如App Store引发智能手机软件的变革一样,云计算的发展也给企业软件市场带来了新的模式,一键开通"软件+云计算资源"便是变革所催生的新产品