GitHub Actions Runner 디스크 공간 최적화 가이드
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

디스크 공간 최적화: GitHub Actions Runner의 디스크 사용량 관리 가이드

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

GitHub Actions를 사용하는 개발자 및 DevOps 엔지니어. 중간 수준의 CI/CD 파이프라인 경험을 가진 대상자.

핵심 요약

  • 디스크 공간 부족 문제 해결 방법: df -h, du -h 명령어로 디스크 사용량 분석 후 불필요한 도구 및 SDK 제거.
  • 주요 디렉터리 제거 대상: /usr/share/swift, /usr/local/lib/android, /opt/hostedtoolcache 등의 디렉터리.
  • 효과적인 클리닝 스크립트: sudo rm -rf로 특정 디렉터리 삭제 및 docker system prune 명령어로 Docker 캐시 정리.

섹션별 세부 요약

1. 문제 발생 배경

  • GitHub Actions Runner는 72GB 디스크 공간을 제공하지만, 기본 설치된 도구와 런타임으로 인해 50GB 이상이 사전에 사용됨.
  • Docker 이미지 빌드 중 디스크 공간 부족 오류(You are running out of disk space) 발생.
  • 예시 오류 메시지: "Free space left: 54 MB"

2. 디스크 사용량 분석 방법

  • df -h 명령어로 전체 디스크 사용량 확인.
  • du -h -d1 / 명령어로 상위 디렉터리별 사용량 정렬.
  • find / -type f -exec du -h {} + 명령어로 파일 단위 사용량 분석.

3. 주요 공간 소모 원인

  • /usr: Java, Swift, .NET 등의 시스템 소프트웨어 및 런타임.
  • /opt: CodeQL, Go, 언어별 도구의 캐시.
  • /mnt: 빌드 중 임시 파일.
  • /home: Rust 툴체인, runner-specific 캐시.
  • 예시: Android SDK (/usr/local/lib/android/sdk)는 약 6GB를 차지.

4. 클리닝 스크립트 구현

  • Aggressive cleanup 단계: 불필요한 도구 및 디렉터리 제거.
  • sudo rm -rf /usr/lib/jvm (Java 제거)
  • sudo rm -rf /usr/share/dotnet (.NET 제거)
  • docker system prune -af (Docker 캐시 정리)
  • 결과: 20GB 이상의 디스크 공간 회복.

5. 모니터링 및 로깅

  • df, du, find 명령어로 생성된 로그를 actions/upload-artifact를 통해 아티팩트로 저장.
  • 추후 디스크 사용량 트렌드 분석 및 문제 디버깅에 활용.

결론

  • GitHub Actions Runner의 디스크 공간 문제는 불필요한 도구 제거로 해결 가능.
  • 권장사항: Aggressive cleanup 스크립트를 GitHub Actions 워크플로우에 추가하고, 클라우드 runner 크기 조정 전에 클리닝을 수행.
  • 예시: Node.js 프로젝트의 경우 Java, .NET, Android SDK 제거.