代码之家  ›  专栏  ›  技术社区  ›  Jacob

从同一代码库为不同租户构建Jenkins Docker图像

  •  0
  • Jacob  · 技术社区  · 6 年前

    我正在尝试为我的Spring引导微服务部署实现CI/CD管道。我计划用詹金斯和库伯奈特制作CI/CD管道。我有一个用于版本控制的SVN代码库。

    应用的性质

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

    我的要求

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

    这里的问题是,提交到一个代码存储库需要从同一个代码报告构建多个Docker映像。表示一个代码报告-多个Docker图像构建过程。实际上,dockerfile包含不同docker映像的不同配置,即针对不同租户。因此,这里我的要求是,我需要使用Jenkins从一个代码repo中为具有不同配置的不同租户构建多个Docker映像。

    我的分析

    我目前正计划通过将多个Jenkins管道作业connect添加到同一代码repo来实现这一点。在Jenkins管道作业中,我可以添加不同的配置。因为不同租户的镜像名称需要保持不同,需要将镜像推入DockerHub。

    我的困惑

    我的困惑是,

    1. 我可以使用Jenkins从同一代码库添加多个管道作业吗?
    2. 如果我可以从同一个代码repo添加多个管道作业,那么如何将每个租户的映像部署到kubernetes?是否需要为部署添加作业?还是一个作业就足够部署?
    1 回复  |  直到 6 年前
        1
  •  2
  •   Amit    6 年前

    你好像弄错了。

    由于您的代码对于所有租户都是相同的,唯一的区别是config,所以在部署到kubernetes时,最好创建一个docker映像,并将其与租户特定的配置一起部署。

    因此,存储库中的更改将触发 詹金斯建造和生产 Docker图像。然后,您可以有多个Jenkins作业或管道中的多个步骤,这些步骤使用租户特定的配置将Docker映像部署到Kubernetes。

    如果你不想注意上面的内容,下面是你的问题的答案:

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