2014-11-26 4 views
2

탄성 beanstalk에 장고 응용 프로그램을 배포하려고합니다. 아마존의 사전 구성된 Python 3.4 도퍼 컨테이너와 새로운 Awsebcli v3 명령 줄 도구를 사용하여 배포 할 예정입니다. eb deploy을 실행하면 ERROR: Timed out while waiting for command to Complete이라는 메시지가 표시되지만 eb logs을 실행하면 오류의 흔적이 표시되지 않습니다. 나는 CNAME로 이동하면 나는 ... 그냥 아마존들이 플라스크 응용 프로그램을 사용하고 application.py라는 파일을 사용하여 응용 프로그램을 실행 고정 표시기 사전 파이썬 컨테이너를 사용하여 EB에 배포주는 예에서 Internal Server Error미리 구성된 도커 컨테이너를 사용하여 탄력적 인 Beanstalk 장고 배포

을 말한다 환경을 제공 내 생각 엔이 문제를 일으키는 것 같은 application.py 파일이 없습니다. 응용 프로그램에 필요한 명령 (collectstatic, DB 동기화가 필요한 경우 syncdb, 기타 makemigrations 및 migrate 등)을 사용하여 django 응용 프로그램을 실행하려면 application.py 파일에 무엇을 넣을까요?

저는 Django 1.7을 사용하고 있습니다. Python 3.4

고맙습니다.

답변

2

컨테이너가 로컬에서 성공적으로 실행되고 있습니까? 그렇지 않다면 Elastic Beanstalk에 배포하기 전에 그렇게 할 것입니다. 나는 또한이 과정의 한가운데에있어 특히 쉽게 찾을 수 없다! 그러나 나는 당신이 언급 한 문제를 지나쳤습니다.

내 application.py 파일은 다음과 같습니다 :

/var/app 
    | 
    | project/ 
     settings.py 
    | myapp/ 
     views/ 
     templates/ 
     ... 

이 다음 작업,하지만하지 않으면 내 정적 파일을 제공 아니에요 응용 프로그램과 나를 잎 : 다음이

import os 
import sys 

sys.path.insert(0, '/var/app') 

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings' 

from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

개발 모드로 실행됩니다. 나는 이것이 container'ed Apache (또는 Nginx인가) 인스턴스가/var/app/static 디렉토리를 제공하고 있지 않다는 것을 의미한다고 생각하지만, 아직 알지 못했습니다.

여기까지 collectstaticsyncdb은 수동으로 실행하고 있습니다. Dockerfile에 CMD 항목으로 추가 할 수 있다고 생각했지만 Docker will only execute the last of those entries이므로 작동하지 않습니다.

내가 가지고있는 다른 질문은 Beanstalk (나는 Postgres가 하나 있고 다른 하나는 장고)에서 두 개의 컨테이너를 실행할 수 있는지 여부입니다. eb deploy이이 문제에 대처할 수 있는지 확실하지 않습니다.

+0

컨테이너가 로컬에서 성공적으로 실행되지 않습니다. 컨테이너의 환경 변수를 로컬에서 설정하는 방법을 모릅니다. 문제의 원인이 무엇인지 알았습니다. 어떻게해야합니까? – rfj001

+0

우선 먼저 데이터베이스를 실행하고 있습니까? 그것에 연결할 수 있습니까? –

+0

글쎄, 지금까지는 도커 컨테이너를 사용하지 않고 로컬 컴퓨터에서만 개발 작업을 수행했으며 데이터베이스는 정상적으로 작동했습니다. 이제는 컨테이너에서 데이터베이스를 회전시켜 응용 프로그램 컨테이너에 연결해야 할 것입니다. – rfj001

관련 문제