2012-05-03 2 views
3

우리는 가상 호스트 인 dotCloud를 사용하여 일부 응용 프로그램을 실행합니다. dotCloud는 git repo에서 직접 응용 프로그램을 배포하고 해당 repo에서 dotcloud.yml이라는 구성 파일을 읽어 스택을 구성하고 실행합니다.서로 다른 지점에있는 동일한 구성 파일의 서로 다른 버전

우리는 동일한 repo의 일부인 두 개의 분기 (하나의 프로덕션, 하나의 스테이징)를 가지며 이러한 점을 통해 dotCloud 인스턴스를 분리합니다. 이러한 각 인스턴스를 실행하려면 dotcloud.yml 파일에 약간의 차이가 있습니다.

이 dotcloud.yml 파일을 관리하는 가장 좋은 방법은 무엇입니까? 현재 우리는 각 브랜치에서 dotcloud.yml이 올바른지 확인하고 있지만, 스테이징에서 마스터로 변경 사항을 병합 할 때마다 계속 덮어 쓰게됩니다.

+0

프로덕션과 스테이징 분기 사이의 'dotcloud.yml'에이 "사소한 차이"를 설명 할 수 있습니까? – jpetazzo

+0

환경 변수 등을 추측하고 있습니다. – nilskp

답변

1

당신 수 :

  • 인 버전 dotcloud.yml.template
  • 인 버전 dotcloud.yml.value.prod 및 각 환경에 대한 적절한 값으로 dotcloud.yml.value.staging.
  • 버전 dotCloud 인스턴스에 따라 dotcloud.ym l 파일 (더 이상 버전이 지정되지 않음)을 빌드하는 스머지 스크립트. 그것은 dotcloud.yml.template를 인식하는 경우,

    어떤 자식 체크 아웃에 filter driver

    가, 문지르 스크립트가 호출되고 :

당신은 .gitattribute file A (또한 버전)에서 filter content driver으로 그 얼룩 스크립트를 선언 할 것 콘텐츠, 바로 dotcloud.yml 파일을 작성합니다.

0

당신은 할 수 :

  • .gitignoredotcloud.yml를 추가, 준비 및 생산 (예 : dotcloud.yml.stagingdotcloud.yml.production)에 대한 두 개의 별도의 파일, 당신의 자식 저장소에 존재하는 모두, 설치 심볼릭 링크 dotcloud.yml → dotcloud.yml.production 있고, (dotcloud push --rsync로 밀어 --rsync 플래그는 푸시 메커니즘 감지를 무시하고 git 메커니즘 대신 rsync 메커니즘이 시작됩니다.
  • 파일은 동일한 dotcloud.yml 파일을 사용하지만 제작 및 준비 동작을 전환하려면 다른 메커니즘 (예 : dotcloud var 또는 postinstall 스크립트)을 사용하십시오.
+0

새로운 (0.9) dotcloud cli 도구에는'dotcloud push '에 대한'--all' 플래그가 없으므로이 대답은 작동하지 않습니다. –

+0

당신 말이 맞아요. 그것은 --rsync로 변경되었습니다. 나는 나의 대답을 업데이트했다. 고맙습니다! – jpetazzo