こんにちは。れいです。
AWS Elastic Beanstalkの勉強のためにサンプルアプリを少し改変してデプロイすると失敗するようになったので、対処法を書いていきます。
エラー内容
Sample applicationsのサンプルコード(docker.zip内のapplication.py)を一部改変する。(表示文字を変えただけ)
改変したコード群をzip化後にAWS Elastic Beanstalkにデプロイすると、以下のエラーが発生する。
Instance deployment: Both 'Dockerfile' and 'Dockerrun.aws.json' are missing in your source bundle. Include at least one of them. The deployment failed.
ちなみに、以下のようにzip化していました。
xxx@xxxxxx:<path-to-folder>$ zip -r docker.zip docker/*
updating: cron.yaml (deflated 24%)
updating: Dockerfile (deflated 29%)
updating: Dockerrun.aws.json (deflated 11%)
updating: application.py (deflated 58%)
原因と対処法
以下によると、zip化の方法が悪かったみたいでした。
理由は良く分かっていませんが、以下のようにzip化後にデプロイすると上手くいきました。
xxx@xxxxxx:<path-to-folder>/docker$ zip ../docker.zip -r .
updating: cron.yaml (deflated 24%)
updating: Dockerfile (deflated 29%)
updating: Dockerrun.aws.json (deflated 11%)
updating: application.py (deflated 58%)