2016-07-21 2 views
0

6 개의 Swisscom CloudFoundry 공간 중 3 개에서 동일한 (사용자 정의) buildpack으로 배포 할 때 다음 오류가 발생합니다.

Starting app my-app-name in org my-org/    space my-space as [email protected] 
Creating container 
Successfully created container 
Downloading app package... 
Downloaded app package (26M) 
Staging... 
exec: "git": executable file not found in $PATH 
Exit status 1 
Staging failed: Exited with status 1 

FAILED 
StagingError 

나는 manifest.yml에 다음 buildpack을 사용하고 있습니다 :

--- 
buildpack: https://github.com/shiftcode/java-buildpack-mongodb 
domain: scapp.io 
path: target/my-app-name.zip 
disk_quota: 1024M 
domains: 
    - scapp.io 
services: 
- my-service-one 
- my-service-two 
... 

env: 
    JBP_CONFIG_OPEN_JDK_JRE : '[jre: {version: 1.8.0_+}, memory_calculator: {memory_heuristics: {heap: 35, metaspace: 30, stack: 5, native: 30}}]' 
    MONGO_DB_VERSION : '3.2.0' 
    MONGODB_CMD_PATH : '.mongo/bin/' 
    MONGODB_MAX_POOLSIZE : '1' 
    MALLOC_ARENA_MAX : '2' 
    MALLOC_MMAP_THRESHOLD_ : '131072' 
    MALLOC_TRIM_THRESHOLD_ : '131072' 
    MALLOC_TOP_PAD_ : '131072' 
    MALLOC_MMAP_MAX_ : '65536' 

# app specific configuration 
applications: 
- name: my-app-name-development 
    memory: 512M 
    instances: 2 
    host: my-app-name-development 

- name: my-app-name-staging 
    memory: 512M 
    instances: 2 
    host: my-app-name-staging 

이 buildpack는 MongoDB를 설치 (우리는 백업의 mongodump 명령을 사용하여) 추가하여 일반 자바 buildpack을 확장합니다. 동일한 코드 및 동일한 manifest.yml 설정을 가진 동일한 buildpack은 일부 공백에서만 작동하지만 다른 공백에서는 작동하지 않습니다. 성공하지 않고 다시 시도하기 전에 앱을 삭제하려고했습니다. 모든 공간과 응용 프로그램에서 ssh 액세스 (diego)가 가능합니다.

스테이징 중에 git 실행 파일을 사용할 수없는 이유와이 문제를 해결하는 방법 또는 해결 방법에 대한 아이디어가 있습니까? 나는 공간을 삭제하고 그들을 재창조하는 번거 로움 (그리고 비용)을 피하고 싶다.

+0

'Manifest.yml'을 사용하여 게시글을 수정하십시오. Cloud Foundry는 Java buildpack 대신 GO buildpack을 사용하고 있다고 생각합니다. 또한 개발자 포털에는 GO 로고가 표시됩니다.'exec : "git": $ PATH에서 찾을 수없는 실행 파일 오류는 GO 빌드 팩에서 유래합니다. –

+0

manifest.yml을 업데이트했습니다. 하지만 cloudfoundry가 GO 빌드 팩을 사용한다고 생각하더라도 다른 공간에서 똑같은 일이 어떻게 일어날 수 있습니까? 'https : // github.com/cloudfoundry/java-buildpack' 또는'exec : "tar"결과를 제공하는'java_buildpack'에서 빌드 팩을 사용할 때 "bad"공백에서 같은 일이 발생합니다 : 실행 파일이 아닙니다. $ PATH'에서 발견되었습니다. –

답변

2

이것은 Cloud Foundry 버전 0.7.0 및 이전 버전에서 garden-runc 컨테이너 화 기술의 문제입니다. Env 변수에 문자열 "PATH"가 포함 된 경우 허용되는 답변에 의해 추측되는 것처럼 PATH를 잘못 설정하는 버그가 있습니다.

이것은 garden-runc release 0.8.0 이후로 해결되었습니다.

https://www.pivotaltracker.com/story/show/129773615

을하고 여기에이 문제를 해결 커밋 : 당신은 관련된 이야기는 여기에서 일을 찾을 수 있습니다

https://github.com/cloudfoundry/guardian/commit/e191b2ca8365f44c812cb8feb70c722391886063

이 문제에 대한 해결 방법은 또 다른 ENV 변수를 설정하는 것입니다 앱 :

PATH: /usr/local/bin:/usr/bin:/bin

0

env 변수를 둘러 보면서 나는 manifest.yml에서 MONGODB_CMD_PATH env 변수를 발견했다. PATH에 영향을 미치는 모든 env 변수는 $PATH 환경 변수를 무시하고 필수 실행 파일이 더 이상 시스템 경로에 없기 때문에 준비 프로세스가 실패하게 만듭니다.

0

나는 똑같은 문제가있어서 받아 들인 대답이 나를 위해 일했다. 다음은 Google 직원을위한 것입니다.

내 매니페스트에 PYTHONPATH 변수를 설정하고있었습니다. CloudFoundry가 PYTHONPATH env var을 올바르게 설정했지만 PATH 변수를 덮어 쓰는데도이 매개 변수를 사용하고있었습니다. 해결 방법은 PYTHONPATH$PATH:/my/python/path으로 설정하는 것입니다. 외부 디렉터리를 PATHPYTHONPATH에 추가하는 동안 예상대로 작동합니다.

관련 문제