2013-07-23 2 views
60

저는 개발 및 생산이라는 두 개의 지회를두고 있습니다. 각각에는 종속성이 있으며, 그 중 일부는 서로 다릅니다. 개발은 자체 개발중인 종속성을 나타냅니다. 생산과 마찬가지로. 각 지점의 종속성을 'requirements.txt'라는 단일 파일에서 예상하는 Heroku에 배포해야합니다.여러 환경에서 requirements.txt를 사용자 정의하는 방법은 무엇입니까?

구성하는 가장 좋은 방법은 무엇입니까?

내가 생각했습니다 무엇 : (? 환경 변수를)

  • , 각 지점의 한 (! 자주 병합 살아남 아야)
  • 요구 사항이 내가 사용하고자하는 파일 Heroku가 말해을 별도의 요구 사항 파일을 유지
  • 스크립트
+1

쉬운 배포 스크립트 : 은 2 개의 파일을 유지 관리합니다. 그들 사이의 심볼릭 링크를 사용하십시오. – Udy

답변

107

당신은 당신의 요구 사항 파일을 계단식하고 "-r"FLA에 사용할 수 있습니다 (임시 지점을 임시 지점을 만들 요구 사항 파일을 수정, 커밋, 배포, 삭제) 배포 쓰기 g 핍에게 한 파일의 내용을 다른 파일에 포함 시키라고 알려줍니다.

`-- django_project_root 
|-- requirements 
| |-- common.txt 
| |-- dev.txt 
| `-- prod.txt 
`-- requirements.txt 

파일 '내용과 같을 것이다 : 당신은이 같은 모듈 폴더 계층 구조로 사용자의 요구 사항을 깰 수

common.txt :

# Contains requirements common to all environments 
req1==1.0 
req2==1.0 
req3==1.0 
... 

dev.txt :

# Specifies only dev-specific requirements 
# But imports the common ones too 
-r common.txt 
dev_req==1.0 
... 

prod.txt :

Heroku가의
# Same for prod... 
-r common.txt 
prod_req==1.0 
... 

외부, 당신은 이제이 같은 설치 환경 :

pip install -r requirements/dev.txt 

또는 Heroku가이 프로젝트 루트에서 "requirements.txt"을 위해 특별히 외모 때문에

pip install -r requirements/prod.txt 

, 그냥해야 거울은 다음과 같이 장식합니다.

요구 사항 txt :

# Mirrors prod 
-r requirements/prod.txt 
+2

heroku의 여러 환경에 대해 별도의 요구 사항 파일을 사용하는 방법에 대한 문제는 무시했습니다. –

+9

나는 나의 대답이 그 문제를 해결했다고 믿는다. –

+1

스테이징 (추가 디버그 패키지가 필요한 곳)과 프로덕션 환경 (여기서 디버그 패키지가 필요하지 않음)을 위해 Heroku에서 다른 요구 사항을 갖는 방법을 찾고있었습니다. 불행하게도, @ EJJ가 말했듯이,이 대답은 이것을 다루지 않습니다. –

관련 문제