2017-02-03 12 views
3

Я пытаюсь развернуть мое приложение django на EB в течение нескольких дней, но у меня все время появляется ошибка при попытке запустить команду. Поэтому в основном, когда я пытаюсь развернуть приложение, он дает мне «python: невозможно открыть файл« manage.py »: [Errno 2] Нет такого файла или каталога». Для полной ошибки, это то, что я получаю после запуска eb deploy на моем терминале.Ошибка конфигурации команды EB Django

Starting environment deployment via CodeCommit 
--- Waiting for Application Versions to be pre-processed --- 
Finished processing application version app-e8a0-170203_135603 
INFO: Environment update is starting.        
INFO: Deploying new version to instance(s).       
WARN: Environment health has transitioned from Severe to Degraded. 100.0 % of the requests are erroring with HTTP 4xx. Insufficient request rate (6.0 requests/min) to determine application health. Command failed on all instances. Incorrect application version found on all instances. Expected version "app-e8a0-170203_135603" (deployment 43). Application update in progress (running for 2 seconds). 
ERROR: [Instance: i-05377fd0bcfa86dd6] Command failed on instance. Return code: 2 Output: python: can't open file 'HungryBoat/manage.py': [Errno 2] No such file or directory. 
command 03_migrate in .ebextensions/03_commands.config failed. For more detail, check /var/log/eb-activity.log using console or EB CLI. 
INFO: Command execution completed on all instances. Summary: [Successful: 0, Failed: 1]. 
ERROR: Unsuccessful command execution on instance id(s) 'i-05377fd0bcfa86dd6'. Aborting the operation. 
ERROR: Failed to deploy application. 

сообщение об ошибке из бревен:

[2017-02-03T21:05:46.082Z] INFO [2980] - [Application deployment [email protected]/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_1_HungryBoat] : Starting activity... 
[2017-02-03T21:05:46.082Z] INFO [2980] - [Application deployment [email protected]/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_1_HungryBoat/Command 01_migrate] : Starting activity... 
[2017-02-03T21:05:46.147Z] INFO [2980] - [Application deployment [email protected]/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_1_HungryBoat/Command 01_migrate] : Activity execution failed, because: python: can't open file '/opt/python/current/app/hungryboat/manage.py': [Errno 2] No such file or directory 
    (ElasticBeanstalk::ExternalInvocationError) 


[2017-02-03T21:05:46.147Z] INFO [2980] - [Application deployment [email protected]/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_1_HungryBoat/Command 01_migrate] : Activity failed. 
[2017-02-03T21:05:46.147Z] INFO [2980] - [Application deployment [email protected]/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild/prebuild_1_HungryBoat] : Activity failed. 
[2017-02-03T21:05:46.147Z] INFO [2980] - [Application deployment [email protected]/StartupStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild] : Activity failed. 
[2017-02-03T21:05:46.413Z] INFO [2980] - [Application deployment [email protected]/StartupStage0/EbExtensionPreBuild] : Activity failed. 
[2017-02-03T21:05:46.413Z] INFO [2980] - [Application deployment [email protected]/StartupStage0] : Activity failed. 
[2017-02-03T21:05:46.414Z] INFO [2980] - [Application deployment [email protected]] : Completed activity. Result: 
    Application deployment - Command CMD-Startup failed 

вот конфигурационный файл у меня есть:

option_settings: 
    "aws:elasticbeanstalk:application:environment": 
     DJANGO_SETTINGS_MODULE: "hungryboat.settings" 
     PYTHONPATH: "./hungryboat" 
    "aws:elasticbeanstalk:container:python": 
     WSGIPath: "hungryboat/wsgi.py" 
     NumProcesses: 3 
     NumThreads: 20 
    "aws:elasticbeanstalk:container:python:staticfiles": 
     "/static/": "www/static/" 

commands: 

    01_pip_update: 
     command: "pip install --upgrade pip" 
     leader_only: true 
    02_pip_freeze: 
     command: "pip freeze > requirements.txt" 
    03_migrate: 
     command: "source /opt/python/run/venv/bin/activate && python manage.py migrate --noinput" 
     leader_only: true 
    04_collect_static: 
     command: "source /opt/python/run/venv/bin/activate && python manage.py collectstatic --noinput" 

Я пытался ставить имя проекта перед manage.py но все равно дает мне ту же ошибку. Я не знаю, как я могу это решить. спаси эту бедную душу. Благодарю.

EDIT: каталог дерево проекта выглядит более или менее, как это:

hungryboat 
├── hungryboat/.ebextensions 
├── hungryboat/.elasticbeanstalk 
├── hungryboat/accounts 
├── hungryboat/dump.rdb 
├── hungryboat/hungryboat 
│   ├── hungryboat/hungryboat/asgi.py 
│   ├── hungryboat/hungryboat/__init__.py 
│   ├── hungryboat/hungryboat/migrations 
│   ├── hungryboat/hungryboat/routing.py 
│   ├── hungryboat/hungryboat/settings.py 
│   ├── hungryboat/hungryboat/urls.py 
│   └── hungryboat/hungryboat/wsgi.py 
├── hungryboat/manage.py 
├── hungryboat/menu 
├── hungryboat/pickplace 
├── hungryboat/README.md 
├── hungryboat/requirements.txt 
├── hungryboat/static 
└── hungryboat/venv 

** EDIT: Фиксированный выше проблемы, но теперь я получаю другую ошибку **

внутри настройки .py у меня есть,

SECRET_KEY = os.environ['APP_SECRET_KEY'] 

, но я получаю эту ОШИБКА

INFO: Deploying new version to instance(s).       
ERROR: [Instance: i-0c46f0a9e5069d5bf] Command failed on instance. Return code: 1 Output: (TRUNCATED)...python/run/venv/local/lib/python3.4/site-packages/django/conf/__init__.py", line 116, in __init__ 
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.") 
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty. 

FYI, я APP_SECRET_KEY внутри переменных EB окружающей среды.

+0

Почему вы устанавливаете pip и создаете требования внутри экземпляра? Что вам нужно сделать, так это создать файл requirements.txt в локальной папке проекта. При развертывании EB автоматически устанавливает все пакеты в этом файле требований. Сначала вы удаляете свои первые 2 команды. Может быть, вам стоит только начать с документации. При развертывании в AWS вам не нужно делать все, что вы делаете, на своем локальном компьютере. –

+0

Они все еще отлично работают, пока не натолкнется на миграционную команду, хотя именно там я застрял. :( –

+0

У вас есть другой файл конфигурации? Или есть ли какие-либо другие комманды над этими командами? –

ответ

1
option_settings: 
    "aws:elasticbeanstalk:application:environment": 
    DJANGO_SETTINGS_MODULE: "hungryboat.settings" 
    PYTHONPATH: "/opt/python/current/app/hungryboat:$PYTHONPATH" 
    "aws:elasticbeanstalk:container:python": 
    WSGIPath: "hungryboat/wsgi.py" 
    NumProcesses: 3 
    NumThreads: 20 
    "aws:elasticbeanstalk:container:python:staticfiles": 
    "/static/": "www/static/" 

container_commands: 
    01_migrate: 
    command: "django-admin.py migrate" 
    leader_only: true 
    02_collect_static: 
    command: "python /opt/python/current/app/hungryboat/manage.py collectstatic --noinput" 

Ваш pythonpath ошибочен, поэтому он не может найти файл manage.py. Сначала измените pythonpath и повторите попытку. Также убедитесь, что у вас есть файл requirements.txt в вашем локальном проекте. Вы не должны создавать требования в своем экземпляре, вы должны создать на своем локальном компьютере, а при развертывании он установит все пакеты в ваших требованиях с помощью pip.

+0

, все еще не могу найти файл manage.py ...: '( –

+0

@JohnD. Можете ли вы показать свое дерево каталогов проектов? –

+0

он был изменен! –