Frage

Ich erstelle eine Webservice und ich möchte auf Github die Quelle speichern und die App auf Heroku laufen. Ich habe nicht mein genaues Szenario gesehen überall auf dem ‚net so weit angesprochen, also wird ich es hier fragen:

Ich möchte die folgende Verzeichnisstruktur haben:

/project
  .git
  README <-- project readme file
  TODO.otl <-- project outline
  ... <-- other project-related stuff
  /my_rails_app
     app
     config
     ...
     README <-- rails' readme file 

In den oben Projekt entspricht http://github.com/myuser/project und my_rails_app ist der Code, der auf Heroku geschoben werden soll. Benötige ich einen eigenen Zweig für die App Schienen, oder gibt es eine einfachere Art und Weise, dass ich fehle?

Ich denke, meine projektbezogene Nicht-Schienen-Dateien in my_rails_app leben könnten, aber die Schienen README schon leben dort, und es scheint widersprüchlich, dass zu überschreiben. Allerdings, wenn ich es, meine Github Seite für die verlassene Schienen App enthält die Schienen readme, was keinen Sinn macht.

Auch ... Ich habe versucht Einstellung es nur nach oben, wie oben beschrieben und ausgeführt

git push heroku

aus dem Hauptprojektordner. Natürlich weiß Heroku nicht, dass ich den Unterordner bereitstellen möchten:

-----> Heroku receiving push
 !     Heroku push rejected, no Rails or Rack app detected.
War es hilfreich?

Lösung

Hier ist eine einfache Lösung, die kann oder auch nicht für Sie arbeiten.

  • Erstellen Sie zwei Projekte auf GitHub. Ein Projekt sollte nur die Rails-Anwendung (das heißt alles, was in dem Rails-Anwendung-Verzeichnis). Das andere Projekt soll alles außerhalb der Schienen App-Verzeichnisses sein.

  • Fügen Sie die Rails-Anwendung Projekt als git-Submodul im "Container" Projekt.

  • Jetzt können Sie hinzufügen Heroku als Remote auf der Rails-Anwendung Repository separat und schieben Sie es auf Heroku. Heroku wird die Push akzeptieren, weil es nur eine Rails-Anwendung mit den erwarteten Verzeichnissen und Dateien ist.

Andere Tipps

Eine Lösung für die Heroku Situation (nicht die Readme-Datei):

Wenn Sie die neue verwenden Heroku Cedar (ich glaube, es war nicht verfügbar, wenn Sie gebeten, Ihre Frage zuerst), dann Ihre Prozesse (wie der Server-Prozess) starten Schienen mit Foreman . So können Sie eine Procfile im Stamm Github Verzeichnis platzieren, dass sieht wie folgt aus:

web:     my_rails_app/script/runserver.sh

Und dann my_rails_app/script/runserver.sh könnte einfach sein

#!/bin/sh

cd my_rails_app
bundle exec rails server -p $PORT

Vor Ort, sollten Sie auch eine Datei namens .env erstellen (beachten Sie die. Am Anfang), die enthält

PORT=3000

Diese Datei wird vom Vorarbeiter gelesen und verwendet, um Set-Umgebungsvariablen so, dass die Port festgelegt, wenn Sie foreman start auf Ihrem Rechner (von der Wurzel Github-Verzeichnis, in dem die procfile liegt) auszuführen. Der Heroku Server kümmert sich um die .env Datei auf dem dyno. Der große Vorteil ist, dass Sie mehrere Prozesse auf dem Prüfstand auf diese Weise einrichten können!

Just Überschreibungs Rails' default README Datei. Es gibt keinen Grund, es zu halten um. Legen Sie Ihre andere Projekt-Management-bezogenen Sachen im doc Verzeichnis. Während Sie haben sicherlich gute Gründe für den Wunsch, es so, wie du getan hast zu gründen, sind Sie nur ein Geduldsspiel für sich selbst, indem Sie gegen die Konvention zu schaffen, und es ist wahrscheinlich der Nutzen nicht wert.

würde ich alles unter /my_rails_app zur Heroku git-Repository hinzufügen. Dann GitHub als Remote hinzufügen und alles unter /project zur GitHub-Repository hinzufügen. Dann können Sie die Rails-Anwendung auf Heroku schieben (von /my_rails_app) und drücken Sie das vollständige Projekt zu GitHub (von /project).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top