AWS Beanstalk アプリケーションで Symfony2 を使用しています。Deployment については、アプリケーションがアップロードされた後にComposer のインストールを行うように Deployment-Script を調整しました。
これは理論的には機能しますが、いくつかの欠点があります。主に、展開時間が常に増加し (サーバーのタイムアウトが発生することがあります)、他のサーバーの可用性への依存度が高まることです。
一部の人々がvendor/*
を tmp-dir にコピーし、展開後にそれを元に戻して、展開を高速化することを読みました。
これは非常に役立ちますが、composer.json
かなり頻繁に更新しているため、展開プロセスでコンポーザーをインストールする必要があります。最善の方法は、すべての依存関係 ( ) をリポジトリにファイルとして含め、デプロイ中にcomposer のインストールvendor/*
をスキップすることだと考えています。
残念ながら、ほとんどのライブラリは git-submodules として含まれており、AWS はサブモジュールをサポートしていません (すべてのファイルがリポジトリにある必要があります)。
だからここに私の質問があります:
すべての git-submodules を削除し、代わりに実際のファイルをコミットする最良の方法は何ですか?
私は組み合わせてみました:
git submodules --recursive foreach
サブモジュールを削除するにはどうすればよいですか? しかし、成功せずに。