如何在Heroku上部署时配置/设置命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Heroku上部署时配置/设置命令相关的知识,希望对你有一定的参考价值。
我正在将我的Laravel应用程序部署到Heroku。我为我的应用程序设置了一个连接到GitHub的管道。我将其配置为每当在develop分支上找到新提交时再次自动部署。问题是我需要配置为在每个部署上运行一些其他命令,例如迁移我的数据库。
我找不到在Heroku UI中设置这些命令的选项。我怎样才能做到这一点?
我找到了Heroku的发布阶段,但我想通过Heroku仪表板进行配置。在发布阶段,我必须将命令放在Procfile
中。很难根据环境运行和管理命令。
例如,在我的测试环境中,我可能想运行php artisan migrate --seed
,但是在我的生产环境中,我可能会在不播种数据库的情况下运行迁移。
您可能更喜欢通过Web仪表板执行此操作,但我认为这不是一个选项。 Procfile
release phase方法效果很好。
添加release
进程到你的Procfile
,例如
web: vendor/bin/heroku-php-apache2 public/
release: php artisan migrate
发布阶段使您可以在部署应用程序的新release之前运行某些任务。发布阶段对于以下任务非常有用:
- 将CSS,JS和其他资产从应用程序的slug发送到CDN或S3存储桶
- 启动或使缓存存储无效
- 运行数据库模式迁移
如果发布阶段任务失败,则不会部署新版本,从而使您当前的版本不受影响。
编辑:发布命令不适合持续集成。更好的解决方案是使用适当的CI工具。 Heroku does provide one,但如果您愿意,可以使用第三方CI工具。
要使用Heroku的CI工具,您需要在管道设置中启用Heroku CI,并在存储库根目录中添加或更新名为app.json
的文件。在app.json
文件中你可以使用configure the testing environment,这可能比简单地为你的数据库播种要复杂得多。例如,您可以包含Heroku插件以提供Redis节点或设置自定义环境变量。
For PHP您的require-dev
依赖项将自动安装在您的测试环境中。您可以在test-setup
script中为数据库设定种子,并在test
script中定义测试命令。
以上是关于如何在Heroku上部署时配置/设置命令的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 Heroku 配置文件,使其在 Heroku 部署的任何终端问题中接受“是”