Hat jemand Glück gehabt, eine JHipster-Anwendung auf Heroku zu implementieren? Ich denke, ein spezielles Buildpack ist erforderlich, aber ich bin mir nicht 100% sicher, da ich neu bei Heroku bin.Eine JHipster-Anwendung auf Heroku implementieren
Antwort
Ich habe zwei Probleme bei der Bereitstellung auf Heroku.
Das erste Problem, Heroku erkennt meine Anwendung als Node.js
, da die package.json
Datei im Stammverzeichnis befindet. Okay, einfache Lösung, da Sie einfach eine .slugignore
Datei erstellen und die package.json
ignorieren. Jetzt erkennt es die pom.xml
und baut.
Zweites Problem, die Slug-Größe des Standard-jhipster ist etwa 340 MB. Der 'Slug' ist im Grunde genommen die Größe aller Abhängigkeiten, die beim Erstellen der Anwendung übernommen werden. Max Slug Größe erlaubt von Heroku ist 300MB. Anstatt zu versuchen, Abhängigkeiten zu sortieren und die Funktionalität zu entfernen, bin ich auf Amazon Elastic Beanstalk umgestiegen. Anstatt dann auf Amazon-Servern aufzubauen, stellen Sie die komprimierte .war-Datei auf einem Tomcat-env bereit, und das funktioniert einwandfrei.
Ich wäre interessiert zu wissen, ob jemand mehr Glück als ich mit Heroku hat, aber obwohl ich teilen würde, was ich gefunden habe.
aktualisiert
ich das Lager jhipster App auf eine t1.micro (kleinste) Instanz auf Elastic Beanstalk erfolgreich im Einsatz, während PostgreSQL Datenquelle zu einer Amazon RDS zu verbinden. Diese Instanz qualifiziert für die kostenlose Stufe (1 Jahr) und gibt Ihnen 1 GB Speicher. Die einzige Konfigurationsänderung, die ich vornehmen musste, war, den Speicherbereich JVM Heap + PermGen auf 512 MB bzw. 128 MB hochzufahren. Es war so einfach wie das Ausführen von "mvn package -PProd" und dann die Übernahme von "app_name.war.original" (ohne Tomcat) und die Bereitstellung dieser Instanz auf dem Tomcat-Instanzserver.
Hier sind die JVM Statistiken von der Benutzeroberfläche, wenn bei so ziemlich ohne Last läuft:
Ich bin der JHipster Hauptentwickler: Ich wusste nichts über diese .slugignore Datei, kannst du ein Ticket erstellen und uns deine Konfiguration geben? Ich hätte gerne einen Heroku Sub-Generator –
Die Details auf der Schnecke sind hier: https://devcenter.heroku.com/articles/slug-compiler. Klingt wie der beste Ansatz wäre, was @jbaris unten erwähnt, wo Sie ein benutzerdefiniertes Build-Paket verwenden, gespalten von https://github.com/heroku/heroku-buildpack-java. Der jhipster-heroku-Subgenerator kann eine procfile, system.properties und .slugignore enthalten, aber der Benutzer muss immer noch eine App erstellen, die das benutzerdefinierte Buildpack angibt. – CMikeB1
Die beiden Probleme, die @ CMikeB1 können mithilfe einer benutzerdefinierten buildpack gelöst erwähnt werden. Es gibt eine Verzweigung, die java und node verbindet: https://github.com/lordviktor/heroku-buildpack-java-node-yeoman-submodule. Ich habe dies gegabelt, um das .m2-Verzeichnis zu entfernen und de slug size https://github.com/jbaris/heroku-buildpack-java-node-yeoman-submodule zu reduzieren.
Buuut gibt es zwei neue Probleme:
Fehler R14 (Speicherkontingent überschritten): das freie Konto verfügt über 512 MB RAM: dies verursacht dynos Swapping und Verlustleistung. Berücksichtigen Sie, dass die Standard-JHipster-App etwa 800 MB RAM benötigt.
Fehler R10 (Boot Timeout) -> Der Webprozess konnte nicht innerhalb von 60 Sekunden nach dem Start an $ PORT gebunden werden: Wenn die App nicht innerhalb von 60 Sekunden nach dem Start aufstarten kann, stürzt sie ab.
Beachten Sie, dass das erste Problem die zweite betrifft. Meine (aktuelle) Schlussfolgerung: Heroku kostenloses Konto ist nicht kompatibel mit JHipster: S
Ich werde Amazon Elastic Beanstalk versuchen. Hast du eine andere Alternative empfohlen?
https://github.com/jhipster/generator-jhipster/tree/master/heroku
ich schon daran zu arbeiten, ich brauche nur etwas Stimmung, bevor es wird offiziell:
Ich habe die stock jhipster-App erfolgreich auf eine (kleinste) t1.micro-Instanz auf Elastic Beanstalk bereitgestellt, während ich eine Verbindung zu einer Amazon RDS PostgreSQL-Datenquelle hergestellt habe. Diese Instanz qualifiziert für die kostenlose Stufe (1 Jahr) und gibt Ihnen 1 GB Speicher. Die einzige Konfigurationsänderung, die ich vornehmen musste, war das Aufpumpen des JVM Heap + PermGen Space. – CMikeB1
Ich habe einen Heroku Teilgenerator für JHipster, indem Sie Ihre Kommentare gestartet.
In Bezug auf Speicher und Boot-Timeout-Probleme, habe ich beide funktioniert OK.
Wie kann ich eine Anwendung verwenden, die mit Hilfe von jhipster 1.0 erstellt wurde: https://github.com/jhipster/generator-jhipster/tree/master/heroku? Ich habe versucht yo jhipster: heroku, aber es fügt nichts Neues hinzu, also denke ich, dass ich den Download vergessen oder etwas aktualisiert habe. – ilopezluna
Ich habe gerade angefangen, es ist noch nicht veröffentlicht. Sie müssen die Entwicklungsversion aus dem Git-Repository verwenden. –
Ok, also sollte ich https://github.com/jhipster/generator-jhipster klonen und irgendwie kompilieren, um meinen jhipster-Generator durch die Entwicklungsversion von github zu ersetzen. Wo finde ich Dokumente darüber, wie man es kompiliert? Ich sah system.properties mit Java 1.8, wird benötigt? – ilopezluna
Ich habe eine App erfolgreich auf Heroku bereitgestellt (https://smallgis.herokuapp.com/#/login), Sie sollten eine App in Heroku erstellen und installieren Sie die mlab Add-on (mongodb in meinem Fall), sollten Sie immer die Slug-Größe weniger von 300 MB. Verknüpfen Sie Ihr Projekt mit der heroku App, die Sie erstellt haben.
Heroku Login
Erstellen Sie ein neues Git-Repository
initialisieren ein Git-Repository in ein neues oder bestehendes Verzeichnis
- cd my-Projekt/
- git init
- Heroku git : remote -a Anwendungsname
Stellen Sie Ihre App bereit
- git add.
- git -m "Änderungen ...." begehen
- git push Heroku Master (Es baut und komprimiert alle die App und Sie konnte in der Default-Heroku Anwendungs-URL visualisieren)
- 1. Einen node.js-TCP-Server auf heroku implementieren
- 2. Rails-App auf Heroku implementieren: Umgebungsdaten nicht im Schema gefunden
- 3. Implementieren von 301 Redirects mit Django/Heroku
- 4. Meteor-Reset auf Heroku
- 5. Twilio in vorhandene Heroku-App implementieren
- 6. Ist es möglich, eine React Native App auf Heroku zu implementieren?
- 7. Wie Subdomain auf eine Heroku-App und Root-Domain auf eine andere Heroku-App verweisen?
- 8. Eine Workaround für SSL auf Heroku
- 9. Laravel - Anwendung auf Heroku bereitstellen
- 10. auf Heroku schiebt
- 11. Einsatz von Sinatra auf Heroku
- 12. Upgrade auf Postgres auf Heroku
- 13. Private Pub auf Heroku
- 14. Scaling Phoenix auf Heroku
- 15. Dockerized MongoDB auf Heroku?
- 16. Benutzerdefinierte Stammdomäne auf Heroku
- 17. Bereitstellung auf Heroku mit Capistrano?
- 18. Radiant Erweiterungen auf Heroku?
- 19. Abiword auf heroku
- 20. Redis auf Heroku Sharding
- 21. Installiere Freedds auf Heroku
- 22. Redis Verbindungsfehler auf Heroku
- 23. Sidekiq Speicherleck auf Heroku
- 24. Wie wird eine benutzerdefinierte Domain auf eine Heroku-Subdomain gelenkt?
- 25. Netty Port auf Heroku
- 26. Wie kann ich auf Heroku auf eine benutzerdefinierte Domain verweisen?
- 27. Implementieren von Zoom auf eine Orbit-Kamera
- 28. DevDependencies auf Heroku installieren
- 29. Geplante woker auf Heroku
- 30. Gerbv auf Heroku installieren
hatte ich es Arbeit bis Heroku letzte Woche meine Datenbank aktualisiert hat. Jetzt funktioniert es nicht. –