Jenkins Build failed: no space left on device

EnoSoup·2021년 7월 23일
0

Jenkins

목록 보기
1/3
post-thumbnail

상황

Admin/develop Build 실패

BUILD SUCCESSFUL in 40s
3 actionable tasks: 3 executed
+ docker build -t accountID.dkr.ecr.ap-northeast-2.amazonaws.com/xx-admin:c1b51a3 .
Sending build context to Docker daemon  893.1MB


Step 1/5 : FROM adoptopenjdk:11-jre-hotspot
 ---> 3be5117ed0ca

Step 2/5 : RUN ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime &&     echo "Asia/Seoul" > /etc/timezone
 ---> Using cache
 ---> fc09c9a74d04

Step 3/5 : RUN mkdir -p /xxxx/crawl
 ---> Using cache
 ---> fc7088136587

Step 4/5 : COPY build/resources/main/static/editor* /xxxx/
 ---> Using cache
 ---> 562111c821cc

Step 5/5 : COPY build/libs/Admin.jar Admin.jar
Error processing tar file(exit status 1): write /Admin.jar: no space left on device

script returned exit code 1

원인

Jenkins 서버 루트볼륨 용량 부족으로 한 Script 종료 코드 반환

  • 서버점검 결과 : 운영 Jenkins 서버 볼륨 부족 현상으로 인해 G2Admin 이외 전체 파이프라인 빌드 실패

디스크 공간 사용량 99% 원인

  • Jenkins 서버 내 docker image 생성 시 빌드캐시가 존재하여 디스크 공간이 부족하였음.
[ec2-user@ip-172-16-11-239 ~]$ docker image ls
REPOSITORY                                                     TAG                 IMAGE ID            CREATED             SIZE
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     b823e77             ff3bbc0afc91        3 hours ago         468MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     602ce59             2b169e6eb01f        3 hours ago         468MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     c7a2ce1             9e2a4addae46        6 days ago          468MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     4c68251             5df1719e6992        6 days ago          491MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     fba29c0             74248f796982        6 days ago          468MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     e507745             b041aa207ee4        7 days ago          468MB
... 중략
<none>                                                      <none>              543f9062aa7e        6 weeks ago         275MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-mq        fdcc072             81ff6795ff8e        6 weeks ago         275MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     82ef944             6872b10e86a8        2 months ago        465MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-api       6bcc84b             a257156f7524        3 months ago        276MB
<none>                                                      <none>              ddcf848309fd        3 months ago        276MB
<none>                                                      <none>              88be7ee42081        3 months ago        276MB
<none>                                                      <none>              ef844226e53b        3 months ago        276MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     <none>              449d142b835b        3 months ago        433MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     <none>              38749ca2a84e        3 months ago        433MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     <none>              3b8593db7a1e        3 months ago        433MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     <none>              b9d5605404e5        3 months ago        433MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     <none>              76eff367f657        3 months ago        433MB
<none>                                                      <none>              79acd8435fb5        5 months ago        461MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     <none>              c54817b2df1d        5 months ago        432MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-auth      4329125             727438fdb640        5 months ago        281MB
jenkins/jenkins                                             jdk11               230a05eb9462        6 months ago        685MB
adoptopenjdk                                                latest              a684d5649a9a        6 months ago        474MB
jenkins/jenkins                                             <none>              7ad786757af5        6 months ago        685MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-admin     7ee1f5b             a5337486c652        7 months ago        442MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-stats     1023e9e             6abe1d8e9b25        8 months ago        265MB
accountID.dkr.ecr.ap-northeast-2.amazonaws.com/g2-service   3fa7907             b545b6f66edc        8 months ago        271MB
<none>                                                      <none>              7a6d0c8fb40a        14 months ago       737MB
adoptopenjdk                                                11-jre-hotspot      3be5117ed0ca        15 months ago       225MB

해결방법

Docker Build Cache 정리

  • 매월 말일 23:55분 Jenkins Docker Build Cache Cron 작업 설정 등록
55 23 28-31 * * [[ $(date +'%d') -eq $(cal | awk '!/^$/{ print $NF }' | sed '/^[[:space:]]*$/d' | tail -1) ]] && /usr/bin/docker system prune -a -f

Jenkins Disk 볼륨 확인

$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  1.9G     0  1.9G   0% /dev
tmpfs          tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs          tmpfs     1.9G  476K  1.9G   1% /run
tmpfs          tmpfs     1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/nvme0n1p1 xfs       100G   65G   36G  65% /
tmpfs          tmpfs     389M     0  389M   0% /run/user/1000

Docker Cache 사용량 확인

$ du -sh * | sort -rh | head -n 10
43G     overlay2
58M     image
53M     containers
884K    volumes
56K     network
56K     buildkit
16K     builder
0       trust
0       tmp
0       swarm

overlay2 Cache 사용량 정리

$ docker system prune -a -f
... 중략
deleted: sha256:57e12361aa14d1b57125594b11d71035c8b87e88c1f72742315e9b29a2b8a6ba
deleted: sha256:d3991ad41f89923dac46b632e2b9869067e94fcdffa3ef56cd2d35b26dd9bce7
deleted: sha256:2e533c5c9cc8936671e2012d79fc6ec6a3c8ed432aa81164289056c71ed5f539
deleted: sha256:282c79e973cf51d330b99d2a90e6d25863388f66b1433ae5163ded929ea7e64b
deleted: sha256:cc4590d6a7187ce8879dd8ea931ffaa18bc52a1c1df702c9d538b2f0c927709d

Total reclaimed space: 43.65GB

결과

  • /var/lib/docker/overlay2 경로 상 Jenkins 빌드 캐시 쌓인 부분이 삭제되면서 총 43.65GB 디스크 공간을 확보하였음.

Jenkins Build 확인

  • Jenkins 볼륨 확장 이후 전체 파이프라인 빌드 성공
profile
Cloud Engineer@Plateer. 클라우드 상에서 엔지니어링을 재미있게 하는 엔지니어입니다.

0개의 댓글