2014-06-11 3 views
0

cloudControl 컨테이너에서 해당 정보를 자동으로 가져 오는 방법을 찾고 있습니다. 그래서 나는 약간의 git 정보를 반환하는 약간의 Symfony2 서비스를 작성했다. 커밋 해시cloudControl 컴퓨터에서 어떻게 정보를 가져올 수 있습니까?

public function getCommitHash() { 
    exec('git rev-parse --short HEAD', $output); 
    $hash = implode(', ', $output); 
    return $hash; 
} 

로컬 컴퓨터에서 실행하면 적절한 단축 커밋 해시가 반환됩니다. 그러나 이것을 내 cloudControl 시스템으로 푸시하면 반환 값은 null입니다. 필자는 컴퓨터에 수동으로 연결하여 명령 줄에서이 명령을 실행했습니다 (저장소가 푸시 된 www 폴더에 있음). 나는 단순히 원격 시스템에합니다 (.git 폴더를 포함) 내 전체 저장소를 밀어 생각 나는 정말 혼란 스러워요

fatal: Not a git repository (or any parent up to mount parent) 
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). 

: 즉, 다음과 같은 오류가 발생합니다. 이 오류가 발생하는 이유는 무엇이며 어떻게 대신 git 정보를 가져올 수 있습니까?

+0

프로젝트 루트 디렉토리에서 실행해야합니다. –

+0

프로젝트 루트 디렉토리 란 무엇입니까 ('www'가 아닌 경우)? –

+0

'.git'폴더가있는 경우 숨겨진 폴더입니다. 또는 'git clone'명령을 실행 한 곳에서 프로젝트를 실행 한 다음 –

답변

1

실행중인 컨테이너에서 git 버전을 사용하려면 환경 변수 DEP_VERSION을 사용할 수 있습니다. 예 :

<?php 
echo 'This container is running git commit ' .$_ENV["DEP_VERSION"] . '.'; 
?> 
+0

그래, 이건 도움이 - 비록 내가 태그 또는 지점을 가져올 수 없습니다. 감사! –

1

컨테이너 내부에서 git 정보를 가져올 수 없습니다. 왜냐하면 git 저장소는 코드가있는 곳에서 초기화되지 않기 때문입니다.

모든 코드는 저장소 노드에 있습니다. cctrlapp APP_NAME/DEP_NAME details을 실행하여 원격 주소를 가져올 수 있습니다.이 주소의 형식은 ssh://[email protected]/repository.git입니다.

이 자식 주소가 주어지면 로컬 디렉토리 (git remote add cctrl ssh://[email protected]/repository.git)에 원격으로 추가하고 원하는대로 자식 정보를 모두 얻을 수 있습니다.

+0

원격 컴퓨터에서 해당 정보를 자동으로 가져 오는 방법을 찾고 있습니다. 로컬에서 가져 오는 것은 도움이되지 않습니다. 어쨌든 고마워! –