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
.ebextensions
. Ich benutze eine Kombination davon und um dasnpm
zu tun, was ich tun muss. Git-Submodule sind keine gute Wahl für EB.Antworten:
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.
quelle
Sie können auch nur
git clone
das Submodul verwenden, um ein eigenständiges Git-Repository wiederherzustellen. Siehe https://stackoverflow.com/q/29246750/242933quelle
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
quelle