2

背景:

我的团队一直在使用 Jenkins 为我们的 Grails 应用程序运行持续集成 (CI)。我们正在尝试通过设置部署管道并将按钮部署到多个环境(Dev、Itg、Prod)来更接近持续交付。我们曾尝试使用 Jenkins Tomcat 插件来部署我们的代码,但在 Tomcat 上偶尔会遇到 PermGen 问题,并且必须在部署后手动重新启动它。

问题:

  1. Jenkins 是用于 Grails 自动部署的正确工具吗?
  2. 我们如何才能自动部署到 Tomcat 而无需事后手动重新启动它?
4

3 回答 3

2
  1. 我认为没有人可以说 Jenkins 是否是“正确”的工具,但它是一个很好的工具。
  2. 当你热部署到 Tomcat 时,它的 PermGen 几乎不可避免地会增长。重新启动是处理此问题的最简单方法。查看其他问题,例如是什么让热部署成为“难题”?了解更多信息。您可以使用 Post Build Task 在 Jenkins 服务器上运行 shell 脚本来部署战争并重新启动 Tomcat。
于 2013-07-31T14:40:45.657 回答
1

我们使用 grails、tomcat 和弹性负载均衡器,并通过 AWS 基础设施编写脚本实例启动/配置/部署。S3 存储桶包含我们的 Jenkins 服务器作为我们配置的插件的一部分放置在那里的 war 文件。这是由内部版本号和 Jenkins 作业名称控制的,因此我们为每个环境都有一个。厨师脚本将我们的依赖关系和战争拉入实例并完成所有实际工作,而我们的 Jenkins 运行编排脚本循环并在每个成功阶段休眠,直到新实例完全启动并通过负载均衡器健康检查,此时我们停止旧实例(负载均衡器排向新实例)。如果出现任何故障或超时,我们会在关闭新实例后使 Jenkins 作业失败。

于 2015-06-30T23:20:14.850 回答
0

从我的角度来看(诚然有偏见)詹金斯并不意味着执行部署。它不是那样设置的。就剪刀并不意味着剥橘子而言,Jenkins 不是进行部署的正确工具。但无论如何它都会完成这项工作。

于 2015-03-27T14:25:32.893 回答