GitHub Actions 캐시

GitHub Actions 캐시

GitHub Actions 캐시 백엔드는 GitHub에서 제공하는 Actions 캐시 또는 GitHub Actions 캐시 프로토콜을 지원하는 다른 캐시 서비스를 활용해요. 사용 사례가 GitHub가 정한 크기·사용 한도 내에 들어온다면, GitHub Actions 워크플로 안에서 사용하기에 권장되는 캐시예요.

출처: 문서

본문

이 기능을 사용하려면 이 캐시를 지원하는 드라이버가 필요해요. 다른 드라이버를 사용하는 새 빌더를 만들어요. 자세한 내용은 Build drivers 문서를 참고해요.

시놉시스 (Synopsis)

$ docker buildx build --push -t <registry>/<image> \
  --cache-to type=gha[,parameters...] \
  --cache-from type=gha[,parameters...] .

인증 (Authentication)

인증을 위해 보통 GitHub Actions 워크플로에서 제공되는 ACTIONS_CACHE_URL, ACTIONS_RUNTIME_TOKEN 같은 환경 변수를 사용해요. GitHub Action을 헬퍼로 사용해 이 변수들을 노출할 수 있어요.

스코프 (Scope)

여러 이미지를 빌드하면 각 빌드가 이전 빌드의 캐시를 덮어써서 마지막 캐시만 남을 수 있어요. 여러 빌드의 캐시를 보존하려면 scope 속성에 특정 이름을 지정해요. 다음 예시에서는 캐시를 이미지 이름으로 설정해 각 이미지가 고유한 캐시를 갖도록 해요:

$ docker buildx build --push -t <registry>/<image> \
  --cache-to type=gha,url=...,token=...,scope=image \
  --cache-from type=gha,url=...,token=...,scope=image .
$ docker buildx build --push -t <registry>/<image2> \
  --cache-to type=gha,url=...,token=...,scope=image2 \
  --cache-from type=gha,url=...,token=...,scope=image2 .

이처럼 scope를 이미지별로 다르게 지정하면 각 이미지가 자기만의 캐시를 유지할 수 있어요.

더 알아보기 (Learn more)