web-dev-qa-db-ja.com

Amazon Elastic Beanstalk + Gitサブモジュール

AmazonのElasticBeanstalkを使用してGit経由でアプリをデプロイしていますが、Git内にサブモジュールがあります。もちろん、サブモジュールのデータがあるはずのディレクトリを見ると、サブモジュールが初期化されていないため、何もありません。

どうやらElasticBeanstalkはサブモジュールをサポートしていません。これは正しいです?もしそうなら、どうすればGitにサブモジュールの機能を持たせながら、メインリポジトリをプッシュするときにサブモジュールのすべてのコードをアップロードするように説得できますか?

私はnode.jsを使用しているので、インストールスクリプトが最良のオプションかもしれないと思っています

7
iLoch
  • サブモジュールが多すぎない場合(そしてサブモジュールを頻繁に変更または更新しない場合)、代わりに静的ファイルに置き換えることができます。

  • 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ベースのコマンドラインツール)を介してデプロイを管理することを検討できます。

1
Drew Khoury

git cloneスタンドアロンのGitリポジトリを取得するためのサブモジュール。 https://stackoverflow.com/q/29246750/2429 を参照してください

0
ma11hew28

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

0