캐시 스토리지 백엔드
캐시 스토리지 백엔드 (Cache storage backends)
빠른 빌드를 위해 BuildKit은 빌드 결과를 자체 내부 캐시에 자동으로 캐시해요. 또한 BuildKit은 빌드 캐시를 외부 위치로 내보내(export)는 것도 지원해서, 이후 빌드에서 가져와(import) 쓸 수 있어요.
출처: 문서
본문
CI/CD 빌드 환경에서는 외부 캐시가 거의 필수적이에요. 그런 환경은 보통 실행 사이에 영속성이 거의 없거나 전혀 없지만, 이미지 빌드의 실행 시간을 최대한 낮게 유지하는 것이 여전히 중요하죠.
일부 캐시 백엔드는 containerd 이미지 저장소를 활성화한 경우에만 사용할 수 있어요. 다른 캐시 백엔드는 별도의 드라이버를 선택해야 해요. 캐시를 잘못 설정하면 자격 증명이 유출될 수 있으니 주의해요.
백엔드 (Backends)
Buildx가 지원하는 캐시 스토리지 백엔드는 다음과 같아요:
- inline: 빌드 캐시를 이미지에 내장해요. (이미지 익스포터와 함께 사용)
- registry: 빌드 캐시를 별도 이미지에 내장하고, 메인 출력과 분리된 전용 위치로 push해요.
- local: 빌드 캐시를 파일시스템의 로컬 디렉터리에 작성해요.
- gha: 빌드 캐시를 GitHub Actions 캐시에 업로드해요 (beta).
- s3: 빌드 캐시를 AWS S3 버킷에 업로드해요 (unreleased).
- azblob: 빌드 캐시를 Azure Blob Storage에 업로드해요 (unreleased).
명령 문법 (Command syntax)
--cache-from 옵션으로 스토리지 백엔드에서 캐시를 현재 빌드로 가져와요. 항상 활성화되는 로컬 BuildKit 캐시와 달리, 모든 외부 캐시 백엔드는 명시적으로 지정해야 해요.
예시:
$ docker buildx build . \
--cache-to type=inline \
--cache-from type=registry,ref=myuser/mycache
각 백엔드별로 자세한 사용법은 해당 백엔드 문서를 참고해요.