如何使用 Jenkins 部署多个 SpringBoot 环境?

Posted

技术标签:

【中文标题】如何使用 Jenkins 部署多个 SpringBoot 环境?【英文标题】:How to deploy multiple SpringBoot environments with Jenkins? 【发布时间】:2016-10-24 09:31:33 【问题描述】:

在this question 之后,我创建了我的 Jenkins 构建,我使用它从带有 gradle 的 spring boot 启动 tomcat 服务器。

我想要实现的是为不同的环境(例如生产、用户验收测试、开发)提供不同的构建。为此,我正在创建多个 jenkins 构建:一个用于开发,一个用于 uat,用于此示例。正在从项目中创建一个 war 文件,然后我运行以下命令来启动新服务器:echo "fuser -k 8090/tcp ; java -jar '/var/lib/jenkins/jobs/VCrawl UAT Build/workspace/build/libs/vcrawl-0.0.1-SNAPSHOT.war' --spring.profiles.active=uat" | at now

问题是当一个构建完成并且shell正在执行这个命令时,另一个服务器会停止以启动这个。我的直觉是 Jenkins 只能使用一个 shell 终端,因此当我运行一个时,另一个 shell 将停止运行,从而停止另一台服务器。

如果我从运行 Jenkins 的机器上启动服务器没有问题,两台服务器都可以工作。

另外,我想指定环境在单独的端口上运行,使用单独的数据库等等。

如何从 Jenkins 创建两个同时运行的 tomcat 服务器?

【问题讨论】:

【参考方案1】:

如果你将spring boot war-file作为服务运行,命令执行时不会被杀死。

看看here

【讨论】:

以上是关于如何使用 Jenkins 部署多个 SpringBoot 环境?的主要内容,如果未能解决你的问题,请参考以下文章

具有多个部署的单个 Jenkins 作业

Linux学习7-一个tomcat部署多个项目(多个端口)

Jenkins:一个项目的多个Git存储库

如何使用jenkins部署jar包

部署在tomcat下面的jenkins启动了多个实例,界面访问报错

《自动化系列》Jenkins部署springboot项目jar包