如何使用 Bamboo 开始 Play 而无需永远继续部署?
Posted
技术标签:
【中文标题】如何使用 Bamboo 开始 Play 而无需永远继续部署?【英文标题】:How to start Play using Bamboo without having the deployment continue forever? 【发布时间】:2014-07-09 04:29:58 【问题描述】:我们已经用 Java 创建了一个 Play 应用程序,并正在使用 Atlassian Bamboo's SSH 任务:cd path/to/application/directory && start "" play run
将其部署到开发环境虚拟机。这会转到正确的位置,启动一个新的控制台,然后开始播放:服务器已成功启动,我们可以毫无问题地访问该站点。
问题在于 Bamboo 中的部署任务永远不会停止,因为它仍在监视调用 play run
的控制台——在 Bamboo 状态下,我们看到类似 Deploying for 7,565 minutes
的内容。我们认为添加 start ""
可以解决这个问题,但在 Bamboo 中它与添加 play run
相同。另外,当我们需要重新部署时,我们必须先停止正在进行的部署,然后手动重新启动它。
两个问题:
-
我们如何从 Bamboo 启动服务器以完成部署计划?
我们如何在下一次部署开始时从 Bamboo 停止/杀死以前的服务器?
【问题讨论】:
【参考方案1】:Bamboo 不适合后台任务。有一个类似的问题,最终,我们编写了一个在后台运行的 bash 脚本。
start.sh &1> /dev/null &2 > /dev/null &
【讨论】:
你有 Windows 的等效 .bat 文件吗? 你在windows上部署? 是的,我们的客户有一个 WAMP 堆栈,我们正在我们的开发/测试环境中模仿它。 您正在为 Play 应用程序模仿 php 堆栈?大富?但是,不知道如何在 Windows 环境中执行此操作。我假设它会像在 Linux 上一样创建一个 PID 文件。你可以从那里开始。【参考方案2】:完全不熟悉 WAMP 堆栈或 play cli,但尝试将其作为 powershell 命令运行,该命令应立即运行并退出
powershell -command "& <your command here>"
或失败
powershell -command "& start-job <your command here> "
【讨论】:
【参考方案3】:对于 Windows,您可以使用 Groovy 脚本运行后台任务。 Groovy 可以将外部程序作为进程执行:
"/bin/application.exe".execute()
然后您可以检查应用程序是否正在运行:
println "tasklist /fi \"imagename eq application.exe\"".execute().text
【讨论】:
以上是关于如何使用 Bamboo 开始 Play 而无需永远继续部署?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Bamboo任务中启用自定义bitbucket jspm注册表项?
Bamboo build-dir过多的空间可以用cron工作清理吗?