Elasti c Beanstalk: / bin / sh: / opt / python / run / venv / bin / activate: нет такого файла или каталога - PullRequest
0 голосов
/ 19 июня 2020

Попытка развернуть приложение django, которое использует каналы, следующие за этим https://medium.com/@elspanishgeek / how-to-deploy- django -channels-2-x-on- aws -elasti c - beanstalk-8621771d4ff0

Это мои файлы конфигурации:

01_env.config

option_settings:  
  aws:elasticbeanstalk:container:python:     
    WSGIPath: "dashboard/wsgi.py"
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: "dashboard.settings"
    PYTHONPATH: /opt/python/current/app/dashboard:$PYTHONPATH

  aws:elbv2:listener:80:
    DefaultProcess: http
    ListenerEnabled: 'true'
    Protocol: HTTP
    Rules: ws
  aws:elbv2:listenerrule:ws:
    PathPatterns: /websockets/*
    Process: websocket
    Priority: 1
  aws:elasticbeanstalk:environment:process:http:
    Port: '80'
    Protocol: HTTP
  aws:elasticbeanstalk:environment:process:websocket:
    Port: '5000'
    Protocol: HTTP

02_setup.config

container_commands:
  00_pip_upgrade:
    command: "source /opt/python/run/venv/bin/activate && pip install --upgrade pip"
    ignoreErrors: false
  01_migrate:
    command: "django-admin.py migrate"
    leader_only: true
  02_collectstatic:
    command: "django-admin.py collectstatic --noinput"
  03_wsgipass:
    command: 'echo "WSGIPassAuthorization On" >> ../wsgi.conf'

Когда я запускаю eb create django-env, он терпит неудачу с

Command failed on instance. An unexpected error has occurred [ErrorCode: 0000000001].

и в журналах я обнаружил, что причина:

2020-06-17 16:36:41,880 P4189 [INFO] Command 00_pip_upgrade
2020-06-17 16:36:41,883 P4189 [INFO] -----------------------Command Output-----------------------
2020-06-17 16:36:41,883 P4189 [INFO]    /bin/sh: /opt/python/run/venv/bin/activate: No such file or directory

Итак, хотя я следую руководству, кажется, что каталог не существует. Я также не могу подключить S SH к экземпляру EC2, чтобы проверить это. Изменился ли каталог python venv в Amazon Linux 2?

Ответы [ 2 ]

1 голос
/ 19 июня 2020

Это не работает, потому что вы используете Amazon Linux 2, в то время как учебник , за которым вы следуете, использует Amazon Linux 1.

Чтобы использовать Amazon Linux 1 при создании среды Python, выберите:

Python 3.6 running on 64bit Amazon Linux

Обратите внимание, что есть огромные различия между AL2 и AL1, и большинство руководств, связанных с AL1, не будут работать в AL2.

0 голосов
/ 19 июня 2020

Если вы хотите попробовать использовать Amazon Linux 2, вы можете следовать документации Aws по развертыванию проекта django

...