2015-01-09 4 views
0

내 Django (1.7) 프로젝트에서 로컬로 작업하고 프로덕션 서버에 정기적으로 업데이트를 배포하려고합니다. 어떻게 할거 니? 나는이 문서에 대해 아무 것도 발견하지 못했다. 나는 많은 사람들이 그렇게하고 싶어 할 것이고 이것에 대한 일종의 표준 해결책이 있어야하기 때문에 그것에 대해 혼란스러워합니다. 아니면 전체 워크 플로가 잘못 되었습니까?로컬 개발 서버에서 작업하고 django에서 프로덕션 서버에 배포하는 방법은 무엇입니까?

단계별 가이드가 필요하지 않습니다. 나는 그 개념을 이해하려고 노력하고있다.

+0

왜 이것이 장고 문서에 있어야합니까? 그것은 장고와 아무 관련이 없습니다. –

+0

이것은 매우 큰 주제입니다. 여기에서 시작하십시오 : https://docs.djangoproject.com/ko/1.7/howto/deployment/ 업데이트 배포와 관련하여 특히 어려운 점이 있습니까? – dylrei

+0

은 배포 전략 및 대상 시스템에 따라 다릅니다. Jenkins를 사용하여 코드를 풀고 테스트를 실행하고 모든 것이 통과되었는지 확인한 다음 타르로 패키징하여 대상 서버로 보내십시오. 대상 서버는 타르를 받고, 압축을 풀고, 현재 코드를 백업하고, 새 물건을 제자리에 넣습니다. –

답변

1

dev 머신에서 소스를 git 저장소에 푸시합니다. 프로덕션 서버에서 소스를 가져옵니다. uwsgi를 다시 시작하십시오.

1

수행하는 표준 방법은 없습니다를, 그래서 아니, 그것은 장고 또는 포함 할 수 없습니다 문서에 철저히 설명되어 있어야합니다.

PaaS를 사용하는 경우 배포 방법은 PaaS에 따라 다릅니다. 도커와 같은 컨테이너의 경우에는 해당 컨테이너의 규칙을 따라야합니다.

당신이 옛날 학교이고 서버에 ssh 할 수 있다면 데이터베이스, 포트, 웹 서버 설정 등등 다른 모든 일이 처리 된 후에 올바른 장소로 코드의 스냅 샷을 rsync 할 수 있습니다. makefile을 사용하는 bash 스크립트로 내용을 제어합니다.

[email protected] 
REMOTEPATH=yourpath 
REMOTE=$REMOTEHOST:$REMOTEPATH 

make rsync REMOTE_URI=$REMOTE 
ssh $REMOTEHOST make -C $REMOTEPATH deploy 

내 -action는 괴물이지만 사이트를 다시로드하기 위해 사용되는 WSGI 파일을 터치 뭔가만큼 쉽다 수 있습니다 "배포". 내 중간 복잡한 것들은 오래된 파일을 청소하고, collectstatic을 실행 한 다음 사이트를 다시로드합니다. 실제로 복잡한 타임 스탬프는 타임 스탬프 된 가상 서버, 복제 된 데이터베이스 및 원격 코드 트리,이를 가리키는 새로운 서버 설정, 원격에서 연결 테스트를 실행하며 성공하면 주 사이트가 새 버전 사이트를 가리 키도록 전환 한 다음 git 해시와 타임 스탬프를 사용하여 현재 생산중인 버전으로 이메일을 보냅니다.

관련 문제