在docker中,ci指的是持续集成(Continuous Integration),cd指的是持续部署(Continuous Deployment);“CI/CD”是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法,其核心概念是持续集成、持续交付和持续部署。
本教程操作环境:linux7.3系统、docker19.03版、Dell G3电脑。
CI 持续集成(Continuous Integration)
CD 持续部署(Continuous Deployment)
CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题。具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。这些关联的事务通常被统称为“CI/CD 管道”,由开发和运维团队以敏捷方式协同支持。
什么是持续集成?
我们所用的开发工具一般叫IDE,直译就是集成开发环境,持续集成的意思说人话就是当你提交代码后,你不需要自己进行重新编译,打包。
Gitlab有个功能叫WebHook,作用就是当你上传代码后它会通过WebHook指定的url通知代码更新了,其实这个功能自己写也很简单,当push新代码后通知你更新,你拉取新代码,编译和打包,这并不难。
除了使用WEBHOOK,其实Gitlab自带的CI/CD也很方便,你需要装一个GitRunner。
还有轮询扫描方式也是可以实现的。
什么是持续部署?
当你有多个服务器,你打包后的代码要一个一个上传到服务器中,然后重新运行服务,这是很浪费人力和时间的事,持续部署的目的就是想解放双手。
扩展知识
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
这玩意就是用来帮你做CICD的,还有很多插件可以使用,无论你是通过tomcat部署,还是ssh运行jar包,或者是php项目,它都能实现,事实上如果让你自己写一个其实也可以实现,但是既然有东西用就不要自己写了。
docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
我的个人见解是docker本身是以容器为出发点的,它本身就是为了不像虚拟机那样消耗不必要的资源,并且方便在多平台进行迁移,省去了运行环境不同所造成的困扰,所以出现了容器这个概念。
docker compose
php中有个php composer,如果熟悉php的同学应该就很容易清楚docker compose到底是干嘛的。如果你有好几个镜像要运行,写了好几个dockerfile,你需要一个一个通过docker build创建镜像,然后一个一个docker run 运行。
docker compose的作用是你只需要写好dockerfile,然后写一个compose yml,一条命令它就可以直接创建镜像+运行,省了一大堆事,在compose里更能体现服务的概念。
docker swarm
docker 集群,你拥有好几台服务器,同时安装了docker,这时你就会用到docker swarm了,它的作用就是统一管理这几台服务器的docker,在使用swarm集群后,事实上就已经开始偏向服务这个概念了。
推荐学习:《docker视频教程》
以上是docker中ci和cd是什么意思的详细内容。更多信息请关注PHP中文网其他相关文章!