从同一代码存储库为不同租户构建Jenkins Docker映像

时间:2018-08-02 15:30:21

标签: jenkins configuration kubernetes jenkins-pipeline

我正在尝试为我的Spring Boot微服务部署实现CI / CD管道。我计划使用Jenkins和Kubernetes制作CI / CD管道。我有一个用于版本控制的SVN代码存储库。

应用程序性质

我的应用程序的本质是,一个微服务需要为多个租户部署。实际上,代码是相同的,但不同租户的数据库配置是不同的。而且我正在使用Spring云配置服务器管理配置。

我的要求

我的要求是,当我将代码提交到SVN代码存储库中时,Jenkins需要提取我的代码,构建项目(Maven),并需要为多个租户创建Docker Image。并且需要部署。

在这里,要提交到一个代码存储库需要从同一代码存储库构建多个docker映像。表示一个代码存储库-多个Docker映像构建过程。实际上,Dockerfile为不同的Docker镜像包含不同的配置,即。对于不同的租户。所以在这里我的要求是我需要使用Jenkins从一个代码库中为Dockerfile中添加了不同配置的不同租户构建多个docker映像

我的分析

我目前正计划通过将多个Jenkins管道作业连接添加到同一代码存储库来实现此目的。在Jenkins管道作业中,我可以添加不同的配置。因为不同租户的映像名称需要保持不同,并且需要将映像推入Dockerhub。

我的困惑

我的困惑是,

  1. 我可以使用Jenkins从同一代码存储库添加多个管道作业吗?
  2. 如果我可以从同一代码库添加多个管道作业,那么如何为每个租户将映像部署到kubernetes?我需要添加作业进行部署吗?还是一项工作就足以部署?

1 个答案:

答案 0 :(得分:2)

您似乎对此有误。

由于所有租户的代码都相同,而唯一的区别是配置,因此在部署到Kubernetes时,最好创建单个Docker映像并将其与租户特定的配置一起部署。

因此,您对存储库的更改将触发一个 Jenkins构建并生成一个 Docker映像。然后,您可以有多个Jenkins作业或管道中的多个步骤,这些步骤将具有租户特定配置的Docker映像部署到Kubernetes。

如果您不想在上面留意,这里是您问题的答案:

  1. 您可以在Jenkins中的同一存储库中创建多个管道。 (多次选择New item > pipeline
  2. 您可以保留一个租户列表,然后循环浏览或在单个管道阶段中并行运行所有部署。