【问题标题】:Creating proper build or deployment chain with Microservices, Docker, Jenkins and GIT使用微服务、Docker、Jenkins 和 GIT 创建适当的构建或部署链
【发布时间】:2016-01-13 04:08:54
【问题描述】:

我们目前正在开始从单体应用程序迁移到微服务。 目前正在使用微服务、Docker、Jenkins 和 GIT 创建适当的构建或部署链

以下是我们为初始阶段考虑的简单过程。我希望应该有更好的工具和流程来透明地简化这些阶段。请提供用于改进此流程的最佳做法和工具。

  1. 开发人员所做的更改将合并到 Git 存储库。
  2. Jenkins 启动构建并创建带有构建版本标记的 Docker 映像
  3. Jenkins 部署 docker 镜像并运行集成测试
  4. Jenkins 注册 docker 镜像
  5. QA 执行手动测试。他们使用脚本根据提供的版本下载这些图像,并通过覆盖 dockerfile 中提到的属性来设置测试环境。
  6. 我们将为 UAT 提供类似的脚本

【问题讨论】:

  • 你能再具体一点吗?您已经概述了您的流程并描述了要使用的高级工具,据我所知,这对我来说听起来不错。
  • 感谢您的快速回复@Rico。根据您的 cmets,看起来我们正走在正确的轨道上。我有几个问题。 1. 我们是否有任何 GUI 工具可以跟踪 Docker 中的版本。 2. 在生产中部署的脚本是否从我们的存储库中获取图像。 3. 在通过Jenkins生成镜像和部署测试时,我们可以使用哪些Jenkins插件和其他工具。

标签: git jenkins docker continuous-integration


【解决方案1】:

我最近回答了一个类似的问题,详情见https://stackoverflow.com/a/34601820/291573

我们使用的不是 Jenkins,而是 GitLab。我们的 CI 工作流程非常通用,因此应该可以轻松地调整到 Jenkins 设置。我们还将docker-compose 用于开发、CI 和生产部署,以便能够创建更复杂的微服务设置。

工作流程

  1. 从本地存储库克隆应用程序
  2. 启动应用程序make all
  3. 在本地开发堆栈中进行更改
  4. (可选)在隔离的本地测试堆栈中运行测试make TEST up setup run-tests
  5. 提交(触发 CI)
  6. CI 构建映像
  7. CI 从构建的映像启动隔离堆栈(通过设置自定义 COMPOSE_PROJECT_NAMEs)并执行设置操作
  8. CI 运行测试(也包括 Selenium 容器的验收测试)
  9. CI 创建报告
  10. CI 执行隔离堆栈的清理
  11. CI 标记图像并将它们推送到注册表(如果测试成功)

资源

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多