ruby on rails Stellen Sie ein Unterverzeichnis auf Heroku bereit




heroku rails puma (3)

Ich habe ein "Super" -Repository in GitHub, das mehrere Anwendungen enthält, die ich in Heroku bereitstellen möchte. Hier ist ein Beispiel für mein Repository.

/app
  /.git
  /website <-- would like to deploy this to Heroku

Wenn ich versuche, mit dem folgenden Befehl zu drücken:

$ git push heroku master

Ich erhalte den folgenden Fehler:

Heroku push rejected, no Rails or Rack app detected.

Wie stelle ich ein Unterverzeichnis auf Heroku bereit?


Answer #1

Ich habe kürzlich dasselbe Problem bei einem Projekt mit dem AppGyver Supersonic-Framework und einer Heroku-App festgestellt.

Unsere Supersonic-App lebte in der Wurzel, so dass es keine Option war, Heroku dort zu leben. Am Ende haben wir unsere Heroku App in ein Unterverzeichnis namens web/ verschoben. Wir stellen nun nach Heroku ein mit:

git subtree push --prefix web heroku master

Answer #2

Dies kann erreicht werden, indem eine config.ru-Datei in Ihr Stammverzeichnis eingefügt wird, die Heroku mitteilt, wo Sie Ihre App finden können. Versuchen Sie beispielsweise mit Rails 3 eine config.ru wie folgt in Ihrem Stammverzeichnis:

WEBSITE_SUBDIR = 'website'
require "#{WEBSITE_SUBDIR}/config/environment"
run YourApplicationName::Application

Auf Rails 2.x benötigen Sie Folgendes:

WEBSITE_SUBDIR = 'website'
require "#{WEBSITE_SUBDIR}/config/environment"
use Rails::Rack::LogTailer
use Rails::Rack::Static
run ActionController::Dispatcher.new

Answer #3

Was denkst du darüber, ein lokales Git-Repository in / app / website zu erstellen und Git Hooks zu verwenden, damit beim Commit auch der Code für deine Website übernommen wird?

Die grundlegende Antwort, aus meiner Sicht, ist, dass Sie ein git-Repository auf der Website-Ebene wollen, nicht auf einer übergeordneten Ebene. Alles von da hängt von Ihrem Standpunkt ab - wollen Sie die / Website als eigenes Repository mit / app verwenden, indem Sie ein Submodul für / eine Website verwenden? (So ​​würde ich gehen)





heroku