gitlab-ci(gitlab-runner)에서 "fatal: missing blob object ~error: remote did not send all necessary objects"라고 작업이 실패하게 된다.

방금전까지 움직이고 있던 gitlab-runner가 아래와 같은 에러로 움직이지 않게 되어 버렸다. .



gitlab-runner
Fetching changes with git depth set to 50...
Reinitialized existing Git repository in /tmp/builds/〜
fatal: missing blob object 'b80eee3b3c630cef3XXXXXXXX'
error: remote did not send all necessary objects
ERROR: Job failed: exit status 1

이렇게하려면 gitlab-runner install시에 지정된 디렉토리에 캐시 파일을 만드는 것 같습니다.
이것이 뭔가 때문에 깨져 버려 매번 에러가 되어 있었습니다.

구구라고 해도 정보를 찾을 수 없었기 때문에 만약을 위해 메모.

gitlab-runner를 설치할 때 지정한 디렉토리에
빌드에 필요한 작업 디렉토리와 같은 것을 만들고 있었던 것을 기억했다.

gitlab-runner를 서버에 설치할 때
$ sudo gitlab-runner install -u execuser -d /tmp/

설치시에 만들어진 설정 파일에도 기재가.
$ sudo vim /etc/systemd/system/gitlab-runner.service
[Unit]
Description=GitLab Runner
After=syslog.target network.target
ConditionFileIsExecutable=/usr/lib/gitlab-runner/gitlab-runner

[Service]
StartLimitInterval=5
StartLimitBurst=10
ExecStart=/usr/lib/gitlab-runner/gitlab-runner "run" "--working-directory" "/tmp/" "--config" "/etc/gitlab-runner/config.toml" "--service" "gitlab-runner" "--syslog" "--user" "execuser"



그래서, 그 대상의 디렉토리를 삭제해 보면. . (※삭제 커맨드이므로 취급 주의)
$rm -r /tmp/builds/

직업을 다시 달려 보면. . !



성공! ! !
대상 디렉토리를 삭제하는 것으로, 무사 작업이 달리게 되었습니다.

또한 다른 방법으로 gitlab-runner를 다시 gitlab-runner register 등으로 다시 만들어도 개선되었습니다.
(working-directory 삭제하는 것이 더 즐겁다.)

좋은 웹페이지 즐겨찾기