2015-01-14 3 views
0

테스트 서버에 django 웹 사이트가 있는데 배포 절차가 어떻게 진행되어야하는지 혼란 스럽습니다.프로덕션 서버에 파이썬 사이트 배포

로컬로 나는 단지 거기에 코드 폴더가 자식에 이러한 폴더가

code 
virtualenv 
static 
static/app/bower_components 
node_modules 

현재 있습니다. 내 초기 생각

는 프로덕션 서버

git clone repo 
pip install 
npm install 
bower install 
colectstatic 

에이 작업을 수행했지만, 난 가끔 pip or npm or bowel의 일부 구성 요소 설치에 실패하고 생산 deployemnet가 실패 할이 문제를 가지고 있었다.

정적으로, bower, npm 등을 git에 넣으려고했기 때문에 모든 것을 가져올 수 있습니다.

그게 올바른 방법인가요? 내가 그 문제를

답변

2

를 해결하기위한 올바른 방법을 알고 싶어하지만 난 가끔 핍 또는 NPM 또는 창자의 일부 구성 요소 설치에 실패하고 프로덕션 배포가 실패 할이 문제를 가지고 있었다.

프로덕션 환경에서 문제가 발생하는 이유 (또는 프로덕션 환경에 아무 것도 설치하지 않고 그냥 복사하는 것)가 아닌 다른 해결책은 없습니다.

파이썬 가상 환경이 이식 가능하도록 설계되지 않았기 때문에 두 번째 옵션에주의해야합니다. PIL/Pillow 또는 데이터베이스 드라이버와 같은 구성 요소가있는 경우에는 빌드 할 때 시스템 라이브러리를 설치하고 컴파일해야합니다.

  1. 업데이트 된 요구 사항 파일을 만듭니다 (PIP 동결> requirements.txt) 테스팅에
  2. 실행 collectstatic : 여기

    내가 인라인 설명서의 deployment section와 인 것이 좋습니다 것입니다 환경.
  3. 정적 디렉토리를 프론트 엔드/프록시 시스템으로 이동하고 STATIC_URL으로 매핑하십시오. 정적 URL을 찾아서 작동하는지 확인하십시오 (예 : http://example.com/static/images/logo.png)
  4. 코드베이스를 프로덕션 서버로 복제/복사하십시오.
  5. 빈 가상 환경을 만듭니다.
  6. 종속성 설치 pip install -r requirements.txt
  7. run through the deployment checklist에는 생산을 위해 필요한 보안 팁 및 설정이 포함되어 있는지 확인하십시오.

이 시점이되면 원하는 방식으로 django 서버를 불러올 수 있습니다.

django를 배포 할 때 many, many guides이 있으며 특정 환경 (예 : AWS 자동화, Heroku 배포 팁, 디지털 오션 등)에 맞게 사용자 정의 할 수 있습니다. 일반적으로 아이디어를 찾아 볼 수 있지만 특정 환경/요구 사항에 맞는지 확인하지 않고 하나의 전략을 채택하는 데주의하십시오.

+0

정보 주셔서 감사합니다. '프로덕션 환경에 아무것도 설치하지 말고, 그냥 복사하십시오.'라는 말이 무슨 뜻입니까? git에 모든 것을 넣는 것과 같지 않습니다. 이것이 우리가 현재하고있는 일 이었기 때문에. – user3214546

+0

버전 관리가 필요한 git에만 넣었을뿐입니다. 나는 개인적으로 그것을 "넘어서 베끼기"위해 사용하지 않는다. –

+0

프로덕션을 위해 별도의 저장소가 있다고 생각했습니다. 테스트 서버에서 테스트되는 모든 내용은 해당 repo로 푸시되고 모든 자산 등 프로덕션 환경에 배포됩니다. 해당 프로덕션 및 테스트가 서버의 정확한 복제 인 경우 해당 방법에 문제가 있습니까? – user3214546

0

또한 this은 배포에 대한 몇 가지 지침에 도움이 될 수 있습니다.

관련 문제