Amazon Elastic Beanstalk + Git-Submodule


7

Ich verwende Amazon Elastic Beanstalk, um meine App über Git bereitzustellen, und ich habe Submodule in meinem Git. Wenn ich mir die Verzeichnisse ansehe, in denen sich die Daten für die Submodule befinden sollten, ist natürlich nichts vorhanden, da die Submodule nicht initialisiert wurden.

Anscheinend unterstützt Elastic Beanstalk keine Submodule. Ist das richtig? Wenn ja, wie kann ich Git davon überzeugen, dass ich die Funktionen eines Submoduls habe, aber trotzdem den gesamten Code des Submoduls hochlade, wenn ich das Haupt-Repo drücke?

Ich verwende node.js, daher denke ich, dass ein Installationsskript die beste Option sein könnte


Wirklich neugierig, warum dies eine Punktzahl von -1 hat, da dies eine ziemlich vernünftige Frage für Serverfehler zu sein scheint.
Jordan Reiter

1
Nur zu Ihrer Information, wenn Ihre App einen Paketmanager verwendet, sollten Sie das Sammeln von Modulen dort übernehmen. EB ist kein echtes Git-Repo und es gibt eine Menge Dinge, die passieren, wenn Sie auf Elastic Beanstalk bereitstellen. Wenn Sie Ihre Umgebung während der Bereitstellung anpassen müssen, sehen Sie sich an, wie Sie Erweiterungen für EB erstellen. Erweiterungen werden in einem speziellen Ordner namens gespeichert .ebextensions. Ich benutze eine Kombination davon und um das npmzu tun, was ich tun muss. Git-Submodule sind keine gute Wahl für EB.
iLoch

Sie können aws eb cli Version 3.10.3+ verwenden. Sie fügten die Möglichkeit hinzu, Git-Submodule für Anwendungsversionen zu
komprimieren

Antworten:


1
  • Wenn Sie nicht zu viele Submodule haben (und diese nicht häufig ändern oder aktualisieren), können Sie sie stattdessen einfach durch die statischen Dateien ersetzen.

  • Viele Leute in der PHP-Community beginnen, sich von der Verwaltung von Abhängigkeiten mit Git-Submodulen zu entfernen und Composer http://getcomposer.org/ zu verwenden . Dies kann einen Teil Ihres Bereitstellungsflusses vereinfachen.

  • Es gibt auch eine hier beschriebene Lösung: https://forums.aws.amazon.com/message.jspa?messageID=474880 Der letzte Kommentar (1. August 2013, 13:37 Uhr von oquismail) zeigt Ihnen, wie Sie Elastic Beanstalk-Konfigurationsdateien ändern

  • Sie können Bereitstellungen über https://github.com/briandilley/ebs-deploy (Python-basierte Befehlszeilentools zum Verwalten von Amazon Elastic Beanstalk-Anwendungen) verwalten.



0

Wenn Sie awsebcli verwenden, das über pip installiert wurde, kann dies hilfreich sein.

Wir konnten den Quellcode für den AWS-EB-Client 3.10.1 auf PyPi finden.

Das Problem besteht darin, wie Git-Repos behandelt werden, während der Quellcode Ihres Projekts zum Hochladen in AWS komprimiert wird. Wenn Sie git nicht für Ihr AWS-Projekt verwenden, wird das gesamte Projektverzeichnis (einschließlich aller anderen Git-Module in Unterverzeichnissen, die Sie möglicherweise darin haben) komprimiert und an AWS gesendet. Wenn Sie git verwenden, wird der gesamte eingecheckte oder bereitgestellte Code mit Ausnahme der Submodule komprimiert und an AWS gesendet. Git-Submodule werden übersprungen.

Wir haben eine Lösung für dieses Problem geschrieben, indem wir das Verhalten so geändert haben, dass die Submodule auch dem komprimierten Archiv hinzugefügt werden. Sie können den Fix unter github.com/uppercasebrands/awsebcli-3.10.1/compare/eb-deploy-submodule auf unserem Git-Repo sehen, das aus dem ursprünglichen PyPi-Paket erstellt wurde.

Sie können das feste awsebcli-3.10.1 installieren, das jetzt Submodule unterstützt, indem Sie pip verwenden:

pip install --upgrade git+https://github.com/uppercasebrands/awsebcli-3.10.1.git@eb-deploy-submodule

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.