Führen Sie Grunt auf ElasticBeanstalk aus

8

Ich habe eine Knoten-Anwendung, die grunt benötigt, um ein "Build" zu machen, bevor die Anwendung erfolgreich ausgeführt werden kann. (läuft concat / minification / revving des Quellcodes usw.). Ich habe dies auf einer EC2-Instanz mit SSH-Zugriff ausgeführt, wie ich nur SSH in das Verzeichnis und führen Sie Grunt als Teil des Bereitstellungsprozesses. Um dies zu automatisieren, verschiebe ich jetzt die Anwendung auf ElasticBeanstalk und habe Schwierigkeiten, die Anwendung erfolgreich zu starten. Der Grund für den Wechsel zu EB ist, die SSH-Schlüssel von den Live-Servern fernzuhalten, damit diese EB-Instanzen ohne ssh-Zugriff eingerichtet werden.

Es scheint keine offizielle Dokumentation zu geben. Könnte mich jemand in eine gute Richtung weisen, um das Obige zu erreichen? Ich muss grunt ausführen, bevor die Anwendung gestartet wird, so dass die Anwendung die Dateien zur Verfügung hat (sonst gibt es eine 404).

    
leaksterrr 07.07.2015, 15:52
quelle

2 Antworten

12

Running Grunt wäre sehr ähnlich wie Running Gulp, also füge ich meine Config ein.

Dies befindet sich in einem .extensions-Ordner im Stammverzeichnis meines Projekts mit dem Namen 01run.config . Sie können mehrere Konfigurationsdateien haben, die in alphabetischer Reihenfolge ablaufen (daher die 01 am Anfang).

Dies weist im Grunde nur den Prozess an, diese Befehle auszuführen, wiederum in alphabetischer Reihenfolge, also habe ich sie entsprechend benannt.

%Vor%
  1. Bekommen Sie sudo Zugang
  2. installiere node.js und npm mit yum
  3. install bower (meine Schluck Prozess benötigt Bower)
  4. install schluck
  5. install git (benötigt von bower)
  6. Dann führe ich zwei Containerbefehle aus, die nach npm install und vor npm start auftreten:
    1. bower install
    2. schlucke sass

In Ihrem Fall würden Sie einfach bower- und git-installationen entfernen, grunt-cli installieren und dann grunt ausführen.

Da ich dies getan habe, habe ich die Notwendigkeit für den obigen Prozess beseitigt, indem ich alles vor der Deployment- und Commit-Installation der erstellten Dateien in das git-Repository erledigt habe. Es war zumindest eine gute Lernerfahrung, die mir viel mehr Kontrolle über meine ec2-Instanzen, die von Bohnenstange bereitgestellt werden, gibt.

    
Kevin B 07.07.2015, 17:44
quelle
1

Dies beantwortet die Frage nicht genau, aber im Einklang mit der letzten Bemerkung von Kevin B grunze ich Aufgaben, einschließlich Build außerhalb von Elastic Beanstalk, und verwende .ebignore , um die Bereitstellung zu steuern. Wenn .ebignore vorhanden ist, folgt eb deploy anstelle von .gitignore . Dies erlaubt mir, den Build-Prozess außerhalb von Elastic Beanstalk zu kontrollieren, während Build-Artefakte aus meinem Git-Repo herausgehalten werden.

Wenn Build-Artefakte beispielsweise zu .build /

gehen

.gitignore

%Vor%

.ebignore

%Vor%

Denken Sie daran, .git in .ebignore hinzuzufügen, um zu verhindern, dass lokale Git-Repometadaten bereitgestellt werden. Außerdem finde ich, dass eb deploy alle Unterordner in einem ausgeschlossenen Ordner auswertet und die Bereitstellung unnötig verlangsamt. Ich musste node_modules vorübergehend verschieben, bevor ich eb deploy ausführen konnte, um es zu beschleunigen.

    
edwinbs 06.08.2016 07:13
quelle