Git 如何在Heroku上部署单独的2个应用程序和1个共享模块

Git 如何在Heroku上部署单独的2个应用程序和1个共享模块,git,heroku,sbt,Git,Heroku,Sbt,我想在Heroku上运行的应用程序由3项组成: HTML前端(www.myapp.com) JSON API(API.myapp.com) 和一个共同的实用程序类 由于我使用不同的子域(而且我不能合并这两个前端),我必须创建两个单独的Heroku应用程序,所以我还需要两个proc文件。对吧? 现在,我如何告诉Heroku使用哪个Procfile?(假设所有内容都在一个存储库中) PS:我在使用Scala、Play和sbt 提前谢谢 如果HTML前端只是静态文件,那么实际上应该将其放在CDN而

我想在Heroku上运行的应用程序由3项组成:

  • HTML前端(www.myapp.com)
  • JSON API(API.myapp.com)
  • 和一个共同的实用程序类
由于我使用不同的子域(而且我不能合并这两个前端),我必须创建两个单独的Heroku应用程序,所以我还需要两个proc文件。对吧?

现在,我如何告诉Heroku使用哪个Procfile?(假设所有内容都在一个存储库中)

PS:我在使用Scala、Play和sbt


提前谢谢

如果HTML前端只是静态文件,那么实际上应该将其放在CDN而不是Heroku上。如果您真的想在Heroku上同时运行这两个应用程序,那么为Heroku上的每个应用程序创建一个git分支,然后将关联的分支推送到正确的git remote。如果您有一个名为“heroku www”的用于www应用程序的git remote和一个名为“www”的git分支,那么您可以通过以下方式将其推送到heroku上的主分支:

git push heroku-www www:master

我曾考虑过使用分支或子模块,但使用我的工具(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

谢谢你的建议。不仅仅是静态文件,我还在使用play框架。当使用2个分支时,我应该将实用程序模块放在哪里?我查看了子模块,但它看起来太复杂了……你是指本地的repo依赖关系吗?不管怎样,我最终使用我的Jenkins CI服务器为本地存储库中的每个应用程序生成一个Procfile,然后从那里推送它