젠킨스(Jenkins) 파이프라인 스크립트 실행 중, Github에서 코드를 당겨오는 과정에서 Git이 꼬였는지 아래와 같은 에러가 발생했다.
stdout: stderr: fatal: Unable to create '{your-file-path}/.git/index.lock': File exists.
"index.lock" 파일은 이름에서도 힌트가 있듯 Git 프로세스가 진행 중일 때 동시에 다른 Git 프로세스를 진행하지 못하게 막아주는 기능을 하는 파일이다. 특정 사용자가 Git에 접근하여 Push/Pull 중일 때 다른 사용자가 동시에 Push/Pull 작업을 하지 못하도록 막아주는 파일인데, 실제로 다른 프로세스가 작동되는 상황이 아니라면 Git이 정상 종료되지 못하고 Crash 된 상태라 위와 같은 에러가 발생하는 것. 따라서 해당 경로에 있는 index.lock 파일을 지워주면 해결이 된다.
로컬에서는 터미널을 열고 아래 명령어를 입력하거나, 실제 파일 경로에 들어가서 수동으로 삭제해주면 된다(참고로 .git폴더는 숨김 처리되어있어 해당 디렉터리에 들어가려면 숨김 폴더를 볼 수 있도록 변경해야 한다).
rm -rf ./.git/index.lock
Jenkins 파이프라인 스크립트 실행 중 해당 에러가 발생했을 경우에는 아래와 같이 에러가 발생한 경로에 저장된 index.lock을 지워주는 스크립트를 Git에서 소스코드를 받아오는 부분 앞에 작성해주면 된다.
steps {
sh '''
rm -rf {your-file-path}/.git/index.lock
'''
참고로 위의 스크립트를 추가한 뒤 Jenkins pipeline을 실행해 index.lock 파일을 지운 뒤에는 해당 부분을 다시 지워주어야 파이프라인 스크립트가 정상적으로 작동된다(해당 부분을 삭제하지 않고 재실행하는 경우에는 index.lock 파일을 찾을 수 없다는 에러 메시지가 발생하게 된다).
'DevOps' 카테고리의 다른 글
[DevOps]로컬환경에서 JMX exporter + Prometheus + Grafana로 자바 모니터링 (3)Prometheus 설치 (0) | 2022.03.30 |
---|---|
[DevOps]로컬환경에서 JMX exporter + Prometheus + Grafana로 자바 모니터링 (1)JMX exporter 설치 (0) | 2022.03.29 |
[DevOps]로컬환경에서 JMX exporter + Prometheus + Grafana로 자바 모니터링 (1)Tomcat 설치 (0) | 2022.03.27 |
[Linux]우분투 vi 에디터 방향 키 누를 시 abcd 영어문자 입력되는 오류 (0) | 2022.03.21 |
[Backend]log4j & JEUS Log level 비교 (0) | 2022.02.08 |