uWSGI를 사용하여 GIT에서 파일 제공

uWSGI를 사용하여 GIT에서 파일 제공

모두 안녕하십니까!

일상 업무에서는 NGINX+uWSGI+MongoDB를 Python 애플리케이션 컨테이너로 사용하고 있습니다. 버전 관리 및 공동 개발을 위해 각 개발자 컴퓨터에 GIT 설치를 사용하고 제공 목적으로 중앙 GIT 저장소를 사용합니다.

모든 것이 순조롭게 진행되고 있지만 한 가지 사소한 문제가 있습니다.

지금까지 내부 소프트웨어의 새 버전을 제공하려고 할 때 모든 개발자는 변경 사항을 병합한 다음 선택한 개발자(일반적으로 프로젝트 관리자)가 최종 제품을 중앙 GIT 서버의 "브랜치 마스터" 저장소에 푸시합니다.

이 푸시가 이루어지면 지속적으로 GIT를 검색하는 스크립트가 새 버전을 검색하여 uWSGI 서버에 푸시한 다음 모든 새 연결에 대해 새 버전을 로드합니다.

이제 우리는 GIT 서버에 푸시할 수 있는 방법과 uWSGI가 이 GIT 서버에서 웹앱을 직접 로드하고 제공하는지 궁금합니다.

이미 비슷한 솔루션이나 uWSGI 구성을 갖고 있는 사람이 있나요?

답변1

서버 기반 git-repo는 작업할 수 있는 것이 아닙니다. 중앙 git-repo(IMHO)에서 파생된 로컬 repo-clone에 항상 의존하게 됩니다. 보기 흉한 cronjob을 없애기 위해 할 수 있는 일: Git을 사용하세요사전/사후 수신 후크git 서버에서:

클라이언트 측 후크 외에도 시스템 관리자로서 몇 가지 중요한 서버 측 후크를 사용하여 프로젝트에 거의 모든 종류의 정책을 시행할 수 있습니다. 이 스크립트는 서버에 푸시하기 전후에 실행됩니다. 사전 후크는 푸시를 거부하고 오류 메시지를 클라이언트에 다시 인쇄하기 위해 언제든지 0이 아닌 상태로 종료할 수 있습니다. 원하는 만큼 복잡한 푸시 정책을 설정할 수 있습니다.

정보도 있어요웹사이트 스테이징을 위한 git-post-receive-hook에 관한 stackoverflow-토론; 특히. 최상위 답변의 첫 번째 링크를 확인하십시오.git-웹사이트-하우투

답변2

내 회사 웹사이트(github 저장소에서 생성됨)에서 사용하는 트릭은 uWSGI에 해당 옵션을 추가하는 것입니다.

; reload the server everytime the repository is updated
touch-reload = .git/index
; every minute pull from the repository
cron = -1 -1 -1 -1 -1 git pull

관련 정보