
우리는 버그를 추적하기 위한 쿼리 로깅을 활성화하기 위해 실행 중인 GAE 애플리케이션을 빠르게 변경하고 싶었습니다.
실행 중인 인스턴스에 SSH로 연결하면 docker 사용으로 인해 앱 코드가 저장된 위치를 찾기가 어려울 수 있습니다.
하는 동안이 지침컨테이너 인스턴스에서 셸을 시작할 수 있습니다. vim
또는 이와 유사한 기능을 컨테이너에서 사용할 수 없으므로 코드를 수정할 수 없습니다.
다음은 앱을 찾을 수 있는 위치를 알아낸 방법입니다.
답변1
GAE 콘솔에서 사이드 메뉴로 이동하여App Engine -> Instances
기본 앱에 연결을 시도하지 않는 경우 왼쪽 상단의 드롭다운을 변경하세요.
그런 다음 SSH 버튼을 클릭하십시오.
Docker 이미지는 다음 위치에 저장되어 /var/lib/docker/overlay2
있지만많은그들의.
앱이 포함된 파일을 찾으려면 프로젝트에 고유한 파일 이름을 선택하세요. 예를 들어 선택한 messageProcessor.js
다음 해당 앱에 대한 모든 이미지를 검색합니다.
(SSH 사용자에게는 권한이 없으므로 해당 폴더에서 찾기를 실행하려면 sudo가 필요합니다)
sudo find /var/lib/docker/overlay2 -name messageProcessor.js
다음과 같은 하나의 결과만 얻을 수 있기를 바랍니다.
/var/lib/docker/overlay2/14b22c856283a3231a55c79f54d298acb9750fc886037533ef830acf55a10116/merged/app/jobs/messageProcessor.js
이제 앱을 찾을 수 있는 위치를 알았으므로 파일을 편집할 수 있습니다.
sudo vi /var/lib/docker/overlay2/14b22c856283a3231a55c79f54d298acb9750fc886037533ef830acf55a10116/merged/app/some/file/in/my/app.js
그런 다음 변경 사항을 적용하려면 앱을 다시 시작하세요.
# ps -ef | grep node
root 11152 11151 0 Sep13 ? 00:00:00 node /app/index.js
# sudo kill <the pid of your process>