如何停止部署到正在进行的 Heroku

Posted

技术标签:

【中文标题】如何停止部署到正在进行的 Heroku【英文标题】:How to stop deployment to Heroku in progress 【发布时间】:2017-06-17 01:19:52 【问题描述】:

是否可以停止部署到当前正在构建的 Heroku (git push heroku)?

类似heroku run stopit!

顺便说一句。成功部署后回滚不是我想要的。

【问题讨论】:

这是个好问题。我同时进行了 5 次部署,从未见过发生这种情况 【参考方案1】:

我可能已经找到了这个问题的答案,似乎 Heroku 在 5 月份已经回答了这个问题。我假设release phase 他们的意思是deploy: https://help.heroku.com/Z44Q4WW4/how-do-i-stop-a-release-phase

发布阶段流程与您的团队中的任何其他 Dyno 相同,希望它们从新版本而不是当前版本运行代码库。

要在发布阶段进程执行时对其进行监控,您可以使用 CLI 命令 heroku ps -a YOUR_APP_NAME。由于这些是正常进程,您可以使用 ps:kill 和 ps:scale 命令来阻止发布阶段完成,这反过来又会阻止最新版本完成。

我还没有对此进行测试,但我会在测试后使用我的确切命令进行更新。如果有人对此进行了测试并可以确认,请随时更新此答案。

【讨论】:

发布阶段在构建结束时运行 - 这是您放置数据库迁移或资产编译任务等内容的地方。所以我认为你不能用它来停止构建。您当然可以使用heroku ps 取消它,但到那时构建将成功完成。 会不会产生不使用build的效果?还是会使用新的部署?所以我还得回滚?我应该有一天测试一下 我不确定 - 我认为它应该无法构建,但我会在测试后报告。 刚刚确认即使发布阶段任务失败也会使用构建。 FWIW 这是一个 Rails 应用程序,发布阶段任务是一个单独的 shell 脚本,它在 rake 任务中引发异常。 发布任务失败,部署失败:devcenter.heroku.com/articles/…【参考方案2】:

首先,安装Heroku builds plugin:

heroku plugins:install heroku-builds

然后,要取消构建,请获取最近构建的列表:

heroku builds -a YOUR_APP_NAME

输出的第一行将是您当前正在运行的构建,第一列是构建 ID。

取消它:

heroku builds:cancel BUILD_ID -a YOUR_APP_NAME

等等,这将强制构建失败。

注意:您也可以从构建日志 URL 中获取构建 ID。

【讨论】:

【参考方案3】:

我使用了命令

heroku builds:cancel -a <your_app_name>

这对我有用

【讨论】:

以上是关于如何停止部署到正在进行的 Heroku的主要内容,如果未能解决你的问题,请参考以下文章

当我将django应用程序部署到heroku时,该站点停止工作

在 localhost 上工作的 Mongo $lookup 在 heroku 部署中停止工作

如何停止heroku服务器?

在 mongo、node、passport 和 heroku 上对用户进行身份验证。几天后停止工作

停止 Heroku 运行 npm start + 运行啥来代替?

pyTelegramBotAPI:机器人在 Heroku 上大约 1 小时后停止运行