AmazonのElasticBeanstalkを使用してGit経由でアプリをデプロイしていますが、Git内にサブモジュールがあります。もちろん、サブモジュールのデータがあるはずのディレクトリを見ると、サブモジュールが初期化されていないため、何もありません。
どうやらElasticBeanstalkはサブモジュールをサポートしていません。これは正しいです?もしそうなら、どうすればGitにサブモジュールの機能を持たせながら、メインリポジトリをプッシュするときにサブモジュールのすべてのコードをアップロードするように説得できますか?
私はnode.jsを使用しているので、インストールスクリプトが最良のオプションかもしれないと思っています
サブモジュールが多すぎない場合(そしてサブモジュールを頻繁に変更または更新しない場合)、代わりに静的ファイルに置き換えることができます。
PHPコミュニティの多くの人々は、Gitサブモジュールによる依存関係の管理からComposer http://getcomposer.org/ 。これにより、デプロイメントフローの一部が単純になる可能性があります。
ここに概説されている解決策もあります https://forums.aws.Amazon.com/message.jspa?messageID=47488 最後のコメント(2013年8月1日1:37 PM by oquismail)は、Elasticbeanstalk設定ファイルを変更する方法を示しています
https://github.com/briandilley/ebs-deploy (Amazon Elastic Beanstalkアプリケーションを管理するためのPythonベースのコマンドラインツール)を介してデプロイを管理することを検討できます。
git clone
スタンドアロンのGitリポジトリを取得するためのサブモジュール。 https://stackoverflow.com/q/29246750/2429 を参照してください
Pipを介してインストールされたawsebcliを使用する場合、これが役立つ場合があります。
PyPiで AWS-EBクライアント3.10.1のソースコード を見つけることができました。
問題は、プロジェクトのソースコードを圧縮してAWSにアップロードする際のgitリポジトリの処理方法にあります。 AWSプロジェクトにgitを使用しない場合、プロジェクトディレクトリ全体(サブディレクトリの下にある他のgitモジュールを含む)が圧縮されてAWSに送信されます。 gitを使用する場合、サブモジュールを除くすべてのチェックインまたはステージングされたコードが圧縮されてAWSに送信されます。 Gitサブモジュールはスキップされます。
サブモジュールもzipアーカイブに追加されるように動作を変更することで、この問題の修正を作成しました。修正は、元のPyPiパッケージから作成されたgitリポジトリのgithub.com/uppercasebrands/awsebcli-3.10.1/compare/eb-deploy-submoduleで確認できます。
Pipを使用して、サブモジュールをサポートするようになった固定awsebcli-3.10.1をインストールできます。
pip install --upgrade git+https://github.com/uppercasebrands/awsebcli-3.10.1.git@eb-deploy-submodule