Docker在CI/CD中的角色?

Docker在CI/CD中的角色?,docker,continuous-integration,continuous-deployment,Docker,Continuous Integration,Continuous Deployment,我是CI/CD的新手,我试图理解为什么我们需要CI/CD中的docker 由于CI服务器将编译测试和构建apk,并通过shell脚本将此apk推送到各自的环境存储桶中。因此,整个过程中到底需要docker在哪里?为什么需要docker? 据我通过Docker了解,你可以实现两大目标 1.运行应用程序的环境相同,即轻量级虚拟化。 2.更容易分发,因为Docker基于层架构 对于开发,您可以在微服务体系结构上构建解决方案 对于CI,在多台机器/同一台机器中复制相同的环境会更容易,因为在这些机器上可以

我是CI/CD的新手,我试图理解为什么我们需要CI/CD中的docker

由于CI服务器将编译测试和构建apk,并通过shell脚本将此apk推送到各自的环境存储桶中。因此,整个过程中到底需要docker在哪里?为什么需要docker?

据我通过Docker了解,你可以实现两大目标 1.运行应用程序的环境相同,即轻量级虚拟化。 2.更容易分发,因为Docker基于层架构

对于开发,您可以在微服务体系结构上构建解决方案

对于CI,在多台机器/同一台机器中复制相同的环境会更容易,因为在这些机器上可以并行执行测试

对于CD,更容易在生产中部署更改,而且它将为生产中的应用程序提供与开发中相同的环境,从而解决“它在我的机器上工作,但在生产中不工作”的问题

您还可以通过Docker swarm,这将帮助您进行蓝色/绿色部署 你可以通过

据我通过Docker了解,你可以实现两大目标 1.运行应用程序的环境相同,即轻量级虚拟化。 2.更容易分发,因为Docker基于层架构

对于开发,您可以在微服务体系结构上构建解决方案

对于CI,在多台机器/同一台机器中复制相同的环境会更容易,因为在这些机器上可以并行执行测试

对于CD,更容易在生产中部署更改,而且它将为生产中的应用程序提供与开发中相同的环境,从而解决“它在我的机器上工作,但在生产中不工作”的问题

您还可以通过Docker swarm,这将帮助您进行蓝色/绿色部署

在您的CI/CD管道中,您可能需要像maven这样的构建工具,或任何其他必需的软件,如sshpass、jq、ansible等。因此,您可以在docker映像中使用这些工具,而不是在运行时安装所有必需的软件

示例(.gitlab ci.yml):


在您的CI/CD管道中,您可能需要像maven这样的构建工具,或者任何其他必需的软件,比如sshpass、jq、ansible等。因此,您可以在docker映像中使用这些工具,而不是在运行时安装所有必需的软件

示例(.gitlab ci.yml):

在,你可以看到一些关于它的用例。在,你可以看到一些关于它的用例。
build:
 stage: build
 image: $DOCKER_REGISTRY/maven/v3.5

script:
 - mvn $MAVEN_CLI_OPTS compile