목록 보기
GitHub Actions에서 도커 캐시를 적용해 이미지 빌드하기
데브옵스

GitHub Actions에서 도커 캐시를 적용해 이미지 빌드하기

두줄요약

GitHub Actions의 매번 새로 생성되는 러너 때문에 Docker 레이어 캐시가 사라지는 원인을 설명했습니다. Buildx와 `type=gha` 캐시로 반복 빌드 시간을 줄이는 방법을 소개합니다.

문제 상황

  • GitHub Actions로 Docker 이미지를 빌드·ECR 푸시하는 배포 과정에서 변경이 적어도 빌드 시간 유지
  • 로컬 재빌드에서는 Docker 레이어 캐시로 빌드 시간이 크게 단축되는 차이

원인 분석

  • GitHub-hosted runner의 매 실행별 신규 가상 환경 생성
  • 기본 GitHub Actions 캐시 대상에 Docker 레이어 캐시 미포함
  • Dockerfile 단계 변경 시 해당 단계 이후 레이어 캐시 무효화

해결 방법

  • docker/setup-buildx-action으로 Buildx 설정
  • docker/build-push-action의 cache-from, cache-to에 type=gha 적용
  • GitHub Cache API를 통한 BuildKit 레이어 캐시 저장·재사용

성능/운영 포인트

  • 의존성 파일 복사 후 npm install을 수행하고 소스 전체 복사를 뒤에 배치하는 레이어 구성
  • 재배포 시 RUN npm install 캐시 재사용으로 빌드 시간 약 1분 단축
  • type=gha 방식의 실험 단계 상태와 Buildx·BuildKit 버전 조건 확인

카카오 계열사 채용30건

채용 사이트에서 전체 보기

다음 읽기

#Docker 주제를 이어서 읽기

GitHub Actions에서 도커 캐시를 적용해 이미지 빌드하기

Docker 레이어 캐시의 동작과 Dockerfile 작성 순서가 빌드 시간에 미치는 영향을 설명했습니다. GitHub Actions의 매번 새로 생성되는 러너 환경 때문에 캐시가 사라지는 원인을 다뤘습니다.

카카오엔터테인먼트FE
카카오엔터테인먼트FE
데브옵스

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...