docker学习系列8 实现持续集成

简介: 上一节我们构建了一个Node镜像。这里我有一台已经安装了docker的Linux主机,比如 IP 是154.8.100.124。我只需在主机上执行 docker run -d -p 3000:3000 finleyma/express,就会部署并运行项目然后浏览器中输入154.8.100.100:3000 就可以访问了。

上一节我们构建了一个Node镜像。
这里我有一台已经安装了docker的Linux主机,比如 IP 是154.8.100.124。
我只需在主机上执行 docker run -d -p 3000:3000 finleyma/express,就会部署并运行项目
然后浏览器中输入154.8.100.100:3000 就可以访问了。
这里牵涉到两个问题:

  1. 每次修改了项目代码需要重新构建新的镜像,然后push到仓库。
  2. 每次还得登录服务器从仓库拉最新的镜像重新运行 ,这样才能反映出变化。

持续集成就能帮我们做到自动化。
不过有几个条件:

  1. 需要一个提供持续集成服务的平台,这里我使用国内的 daocloud
    他可以接入我们的主机,提供在线 web 的方式管理运行在主机上面的容器。
  2. 需要一台能访问的且安装了docker的主机(最好是Linux)。
  3. 代码要部署到 github,coding 等 daocloud 支持的代码托管商。

下面介绍下流程:
去daocloud绑定仓库,和主机
根据仓库构建镜像
配置

  1. daocloud 申请账号,过程略。
  2. 管理面板 添加我们的主机
img_cba2494fdddbeeafbbd206f7fa4aa7a6.png
image.png
  1. 查看主机上运行的 docker相关的信息
    在主机上我们得敲 docker info, docker inspect 等。这里直观的多。
img_78d8c92f52f3d61de155675f70ce394e.png
image.png
  1. 添加应用
img_f64e67cdcae705a863e31869b94b2dfe.png
image.png
  1. 添加项目,需要绑定 github 或 coding代码源
    代码源就是上节的express项目,仓库地址是:https://coding.net/u/finley/p/docker-express-demo
    里面有Dockerfile。我们让daocloud帮忙构建,并且发布到主机上面。
img_48c2a59e83e3f6e96f286ffd1f5901b2.png
image.png

在流程定义中构建阶段后面添加发布阶段,选择发布到自有主机

img_2b391911088127a95f9fb2664102d0cb.png
image.png

这个过程就是push代码之后,daocloud要根据Dockerfile去构建镜像,构建之前可以要运行测试脚本,构建成功之后可能要发送提醒。
默认是图形化的配置,也可以切换到yaml形式,编写流程定义 daocloud.yml 文件。
这里有个细节,如果你切换到了yaml格式,内容为空。push代码不会触发自动构建的。
稍微吐槽下daocloud做的不够人性化,流程定义没有帮助提示。比如匹配分支,满足条件那块,我不知道能填哪些,你弄个问号,鼠标指上去显示几行描述也好啊

img_1ef059ec29cbdd82bdb68b8640f41e1c.png
image.png
  1. 这样就实现了,每当本地push代码到仓库,daocloud会重新构建镜像然后发布到主机。
img_6bc2391f7d92d93e8cd8eb33826c0796.png
image.png

有很多细节没有讲到,请自行查看提供的文档。

参考:
http://guide.daocloud.io/dcs/ci-9863687.html
https://github.com/Ye-Ting/docker-ci/blob/master/daocloud.md

相关文章
|
3月前
|
存储 测试技术 持续交付
Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用
本文探讨了Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用。首先介绍了CI/CD的基本概念,接着阐述了Docker在环境一致性、快速部署、资源隔离和轻量化方面的优势。文章还详细讨论了构建、测试和部署阶段的具体集成方法,以及集成后带来的效率提升、可靠性增强、加速交付和易于管理等好处。最后,通过案例分析展示了集成的实际效果,强调了Docker与CI/CD结合的重要性和未来前景。
78 2
|
4月前
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
213 3
|
5月前
|
存储 Ubuntu Linux
学习docker
学习docker
71 1
|
5月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
581 3
|
5月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
537 1
|
5月前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
222 0
|
5月前
|
机器学习/深度学习 算法 前端开发
集成学习任务七和八、投票法与bagging学习
集成学习任务七和八、投票法与bagging学习
71 0
|
5月前
|
运维 Kubernetes 开发者
Docker Swarm学习
【10月更文挑战第5天】
63 3
|
5月前
|
Kubernetes Linux 持续交付
docker容器学习
【10月更文挑战第1天】
60 1
|
5月前
|
机器学习/深度学习 算法
【机器学习】迅速了解什么是集成学习
【机器学习】迅速了解什么是集成学习

热门文章

最新文章