我想在Heroku上运行的应用程序包含3个项目:
由于我使用不同的子域(我无法合并2个前端),我必须创建2个单独的Heroku应用程序,所以我还需要2个Procfiles。正确?
现在,如何告诉Heroku使用哪个Procfile?(假设所有内容都在一个存储库中)
PS:我正在使用Scala,Play和sbt。
提前致谢!
答案 0 :(得分:3)
如果你的HTML前端只是静态文件,那么你应该把它放在CDN而不是Heroku上。如果你真的想在Heroku上运行,那么为Heroku上的每个应用程序创建一个git分支,然后将相关的分支推送到正确的git远程。如果您有一个名为“heroku-www”的www应用程序的git遥控器和一个名为“www”的git分支,那么您可以将它推送到Heroku上的主分支:
git push heroku-www www:master
答案 1 :(得分:1)
我考虑过使用分支或子模块,但是使用我的工具(IntelliJ,Jenkins)太难了。所以我在CI服务器中创建了2个作业;每个都检出存储库,添加相应的Procfile并将其推送到heroku:
#!/bin/bash
echo "#### Checkout repository"
git clone -o -f git@github.com:myself/myrepo.git $WORKSPACE/source
cd source/
echo "#### create Procfile"
echo "web: apps/app-api/target/start -api.port=\$PORT" > Procfile
git add Procfile
echo "#### commit locally"
git commit -a -m "prepared for Heroku deployment"
echo "#### push to heroku"
git remote add repo-heroku git@heroku.com:myapp.git
git push --force repo-heroku master && exit 0