web-dev-qa-db-ja.com

DjangoアプリをAWSBeanstalkにデプロイする際のrequirements.txtが無効です

最新のコミットまで、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
20
vaisaghvt

私はまったく同じ問題を抱えていました。私のために働いた唯一のことは、私の環境全体を(自動的に)再構築することでした。 AWSコンソールでそれを行うことができます。ご使用の環境に移動し、「アクション」>「環境の再構築」をクリックします。これにはしばらく時間がかかります。その後、このエラーなしでアプリが自動的に再起動します。

更新:

問題は時々再発し続けます。 pipがpostgreSQLのサポートに必要なpsycopgをコンパイルすると、問題が発生していることがわかりました。まだ本当の解決策を見つけていません。

12
jvannistelrooy

postgresql93-develpostgresql93.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'
11
yolk

mysql-develパッケージがインストールされていることを確認しましたか?設定ファイルのyumセクションに含まれていないようです。

1
Anass

なんらかの理由で、AWSは私のpostgresql-develから.extensions/01_packets.configパケットをインストールしませんでした。代わりに追加する必要がありました

container_commands:
  01_addPostgreSQLPacket:
    command: 'yum install postgresql95-devel'
    leader_only: true

私の02_Django.configに。その後は問題なく動作しました。

0
TheSeeker

OPで説明されているものとは異なるシナリオですが、誰かに役立つ可能性があります。

ElasticBeanstalkで新しく作成されたERROR Your requirements.txt is invalid. Snapshot your logs for details.インスタンスに最小限のテストアプリをデプロイしようとしたときに、同じt1.microメッセージが表示されました。

テストアプリは、基本的なAWS Pythonサンプルアプリ( ここから )で構成され、それに.ebextensions/software.configrequirements.txtを追加しました。実稼働環境。唯一の目的は、デプロイ時にこれら2つのファイルをテストすることでした。

ログを詳しく調べると、pip install中にMemoryErrorが見つかりました。 t2.smallインスタンスにアップグレードした後、展開は問題なく成功しました。

0
djvg