Docker 在 CI/CD 中的作用?

问题描述 投票:0回答:2

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

由于 CI 服务器将编译测试并构建 APK,并通过 shell 脚本,此 APK 将被推送到 HockeyApp 到各自的环境存储桶。那么整个过程中究竟在哪里以及为什么需要Docker

docker continuous-integration continuous-deployment
2个回答
2
投票

您可以通过https://www.docker.com/use-cases/cicd

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

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

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

对于 CD,更容易在生产中部署更改,而且它将为生产中的应用程序提供与开发中的应用程序相同的环境,这将解决“它可以在我的计算机上运行,但不能在生产中运行”的问题。

您还可以通过 Docker swarm 来帮助您进行蓝/绿部署 https://technologyconversations.com/2017/01/31/blue-green-deployments-with-docker-services-running-inside-a-swarm-cluster/


1
投票

在 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
© www.soinside.com 2019 - 2024. All rights reserved.