2016-10-10 2 views
1

CloudFoundry에 배포 할 grails 앱을 사용하고 있습니다. CloudFoundry는 디렉토리의 루트에서 manifest.yml 파일을 사용합니다. 이 파일은 응용 프로그램을 푸시 할 때 CF에 의해 선택됩니다.외부 manifest.yml과 함께 전쟁을 포장하는 방법

이 manifest.yml을 외부로 전달할 수 있습니까? WAR 파일을 클라이언트에 발송할 때 개발시 사용했던 manifest.yml을 제공하고 싶지 않으며 manifest.yml 버전으로 클라이언트를 다시 빌드 할 필요가 없습니다.

CF는 WAR 파일의 외부에있는 manifest.yml을 전달합니까?

+0

"외부에서 매니페스트 파일을 전달하십시오." 고객에게 WAR 파일과 사용자의 매니페스트 템플릿을 제공 할 수는 없지만 고객에게 자신의 환경에만 해당되는 것을 채우도록 요청할 수는 없습니다. 신임장? –

+0

매니페스트는 WAR 파일의 일부입니다. 따라서 WAR 파일을 고객에게 발송하고 manifest.yml에서 일부 (예 : 자격증 명)를 변경해야하는 경우 어떻게 처리할까요? WAR를 추출하고 매니페스트를 변경하십시오.yml, 패키지를 다시 작성 하시겠습니까? 이는 코드 전달 관점에서 비효율적 인 것처럼 보입니다. – Anthony

+0

다음은 시나리오입니다. 내 앱은 타사 웹 서비스를 사용하므로 해당 웹 서비스의 URL이 필요합니다. 나는이 URL의 값을'manifest.yml'에 사용자 정의 된 환경 변수로 전달합니다. 필자는 응용 프로그램을 패키지화하고 하나의 파일 (WAR 파일)을 클라이언트에 보냅니다. 클라이언트 사이트에서 세 번째 부분 앱의 URL이 약간 다릅니다. 클라이언트는 무엇을합니까? 또는 CF는 프로덕션 값을 제공하는 것이 어플리케이션 개발자로서 제 일이라고 생각합니까? 이러한 유형의 파일을 외부화하는 것이 일반적입니다. – Anthony

답변

0

CloudFoundry는 디렉토리의 루트에서 manifest.yml 파일을 사용합니다. 이 파일은 응용 프로그램을 푸시 할 때 CF에 의해 선택됩니다.

올바르지 않습니다. cf cli는 현재 디렉토리에 manifest.yml 파일이있는 경우 해당 파일을 선택합니다. 이것이 기본 위치입니다. cf push -f path/to/manifest.yml으로 위치를 지정할 수도 있습니다. 날이 외부 manifest.yml 통과하는

http://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#find-manifest

은 가능합니까?

이것이 유일한 방법입니다. manifest.yml을 WAR 파일에 넣지 않으려면 사용자에게 unzip을 실행시키고 파일을 추출하십시오. cf cli는 WAR 파일에서 manifest.yml을 찾지 않습니다. path 항목이 manifest.yml에 없으면 사용자의 WAR 파일을 찾을 수 없을 수도 있습니다.

CF가 WAR 파일의 외부에있는 manifest.yml을 전달할 수 있습니까?

플랫폼은 manifest.yml 파일 공유와 관련된 기능을 제공하지 않습니다. 고객에게 어떻게 얻는지는 당신에게 달려 있습니다.

위의 의견에서 언급 한 것처럼 고객에게 manifest.yml 기능 템플릿을 제공하거나 고객이 manifest.yml을 작성하는 방법에 대한 지침을 제공하고자 할 수 있습니다. 고객 환경에 따라 다를 수 있습니다. 예를 들어, 다른 호스트 & 도메인 이름을 원하거나 다른 서비스를 바인드 할 수 있습니다.

또 다른 옵션은 배포 스크립트를 제공하는 것입니다. 배포 스크립트는 복잡해 지지만 cf을 사용하여 정보를 쿼리하고 더 많은 것들을 자동으로 설정하려고 시도 할 때 좀 더 지능적 일 수 있습니다. 예를 들어 앱에 서비스가 필요합니까? 자동으로 생성하는 배포 스크립트. manifest.yml 파일로 수행 할 수 없습니다 (기존 서비스 만 바인딩 할 수 있음).

희망 하시겠습니까?

관련 문제