最新のコミットまで、Beanstalk環境に問題なくアプリをデプロイしてきました。
今私はこれを手に入れます
Time Type Details
2013-09-01 10:19:12 UTC+0800 ERROR Failed to deploy application.
2013-09-01 10:19:11 UTC+0800 ERROR Responses from [i-50f40d06] were received, but the commands failed.
2013-09-01 10:19:11 UTC+0800 ERROR Your requirements.txt is invalid. Snapshot your logs for details.
2013-09-01 10:19:11 UTC+0800 ERROR [Instance: i-50f40d06 Module: AWSEBAutoScalingGroup ConfigSet: Hook-PreAppDeploy] Failed on instance with return code: 1 Output: Error occurred during build: Command hooks failed .
スナップショットログには次のように記載されています。
2013-09-01 02:19:08,852 [INFO] (9941 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Output from script: New python executable in /opt/python/run/venv/bin/python2.6
Not overwriting existing python script /opt/python/run/venv/bin/python (you must use /opt/python/run/venv/bin/python2.6)
Installing distribute..................................................................................................................................................................................................done.
Installing pip................done.
2013-09-01 02:19:08,564 ERROR Error installing dependencies: Command '/opt/python/run/venv/bin/pip install --use-mirrors -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status -9
Traceback (most recent call last):
File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 31, in main
install_dependencies()
File "/opt/elasticbeanstalk/hooks/appdeploy/pre/03deploy.py", line 25, in install_dependencies
Shell=True)
File "/usr/lib/python2.6/subprocess.py", line 502, in check_call
raise CalledProcessError(retcode, cmd)
CalledProcessError: Command '/opt/python/run/venv/bin/pip install --use-mirrors -r /opt/python/ondeck/app/requirements.txt' returned non-zero exit status -9
2013-09-01 02:19:08,853 [ERROR] (9941 MainThread) [directoryHooksExecutor.py-34] [root directoryHooksExecutor error] Script failed with returncode 1
2
私のrequirements.txtは以前と同じです。また、requirements.txtのすべてを削除しようとしましたが、同じエラーが再び発生し、requirements.txtが実行される前に問題が発生したと思われます。
展開の順番がわかりません。とにかく、これが私の設定ファイルです:
packages:
yum:
libjpeg-devel: '6b'
zlib-devel: []
freetype-devel: []
container_commands:
01_install_mysqldb:
command: "pip install distribute==0.6.28; pip install mysql-python;"
02_syncdb:
command: "python manage.py syncdb --noinput"
leader_only: true
03_createadmin:
command: "python scripts/createadmin.py"
leader_only: true
04_collectstatic:
command: "python manage.py collectstatic --noinput"
05_migrate_wizards:
command: "python manage.py migrate wizards --noinput"
leader_only: true
06_migrate_facebook:
command: "python manage.py migrate facebook --noinput"
leader_only: true
07_migrate_socialaccount:
command: "python manage.py migrate socialaccount 0011 --noinput"
leader_only: true
08_migrate_missions:
command: "python manage.py migrate missions --noinput"
leader_only: true
09_migrate_mailchimp:
command: "python manage.py migrate mailchimp --noinput"
leader_only: true
10_migrate_actstream:
command: "python manage.py migrate actstream --noinput"
leader_only: true
option_settings:
- namespace: aws:elasticbeanstalk:container:python
option_name: WSGIPath
value: ideatory/wsgi.py
- namespace: aws:elasticbeanstalk:container:python:staticfiles
option_name: /static/
value: static/
- option_name: Django_SETTINGS_MODULE
value: ideatory.settings
私はまったく同じ問題を抱えていました。私のために働いた唯一のことは、私の環境全体を(自動的に)再構築することでした。 AWSコンソールでそれを行うことができます。ご使用の環境に移動し、「アクション」>「環境の再構築」をクリックします。これにはしばらく時間がかかります。その後、このエラーなしでアプリが自動的に再起動します。
更新:
問題は時々再発し続けます。 pipがpostgreSQLのサポートに必要なpsycopg
をコンパイルすると、問題が発生していることがわかりました。まだ本当の解決策を見つけていません。
postgresql93-devel
とpostgresql93
を.ebextensions
に追加することで、この作業を行うことができました。
Linuxを実行しているEC2インスタンスでのソフトウェアのカスタマイズで説明されているように
これは64bit Amazon Linux 2014.09 v1.0.9 running Python 2.7
で機能しています
.ebextensions/01_pre_deps.config
:
packages:
yum:
gcc-c++: []
make: []
openssl-devel: []
git: []
python-devel: []
python27-devel: []
Ruby-devel: []
postgresql93: []
postgresql93-devel: []
# nginx: []
rubygems:
bundler: '1.7.3'
compass-core: '1.1.0.alpha.3'
neat-compass: '1.6.0'
mysql-devel
パッケージがインストールされていることを確認しましたか?設定ファイルのyum
セクションに含まれていないようです。
なんらかの理由で、AWSは私のpostgresql-devel
から.extensions/01_packets.config
パケットをインストールしませんでした。代わりに追加する必要がありました
container_commands:
01_addPostgreSQLPacket:
command: 'yum install postgresql95-devel'
leader_only: true
私の02_Django.config
に。その後は問題なく動作しました。
OPで説明されているものとは異なるシナリオですが、誰かに役立つ可能性があります。
ElasticBeanstalkで新しく作成されたERROR Your requirements.txt is invalid. Snapshot your logs for details.
インスタンスに最小限のテストアプリをデプロイしようとしたときに、同じt1.micro
メッセージが表示されました。
テストアプリは、基本的なAWS Pythonサンプルアプリ( ここから )で構成され、それに.ebextensions/software.config
とrequirements.txt
を追加しました。実稼働環境。唯一の目的は、デプロイ時にこれら2つのファイルをテストすることでした。
ログを詳しく調べると、pip install
中にMemoryError
が見つかりました。 t2.small
インスタンスにアップグレードした後、展開は問題なく成功しました。