Help us understand the problem. What is going on with this article?

`eb deploy` で git archive が使用されるかどうかの基準

More than 3 years have passed since last update.

eb deploy はアプリケーションを zip で固めて S3 にアップしてデプロイといった一連の手順をまとめて行ってくれる便利なコマンドですが、zip で固める方法は以下の2種類あります。

  • zip コマンドを使用する方法
  • git archive コマンドを使用する方法

git archive が使用できる場合は優先して git archive が使用されます。
具体的には .git があるディレクトリ上で eb deploy した場合は自動的に git archive が使用されるようです。
(実験で .git があるディレクトリのサブディレクトリで実行してみたら zip の方が使用されました。)

アーカイブ方法を見分けたい場合

どちらの方法でアーカイブされたかを見分けたい場合は eb deploy に --debug オプションを付けて実行するとコンソールの出力内容から判別できます。

zip コマンドが使用された場合の出力例:

2017-08-24 18:59:11,380 (INFO) eb : Creating zip using systems zip

git archive コマンドが使用された場合の出力例:

2017-08-24 18:49:05,689 (INFO) eb : creating zip using git archive HEAD

git の管理ディレクトリでも zip コマンドでアーカイブしたい場合

以下の手順でできます。

1. beanstalk の設定ファイルに追記

設定ファイルにデプロイに使用する ZIP のファイル名を追記します。
eb deploy コマンドを実行するディレクトリからの相対パスになります。
アプリケーションディレクトリにゴミ zip を作りたくない場合は ../deploy.zip とかの方がいいかも。

.elasticbeanstalk/config.yml
deploy:
  artifact: ./deploy.zip

(設定ファイルは eb init をすれば作られます。)

2. アプリケーションを zip 化してデプロイ

zip -r -q ./deploy.zip -r * .[^.]*
eb deploy
ymm1x
明日を今日より生きやすく。
https://sousaku-memo.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away