Docker在CI / CD中的作用?

时间:2018-07-23 15:57:30

标签: docker continuous-integration continuous-deployment

我是CI / CD的新手,并试图了解为什么我们在CI / CD中确实需要docker。

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以通过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/