GitHub Actions로 캐시 관리하기

GitHub Actions로 캐시 관리하기 (Cache management with GitHub Actions)

이 페이지는 GitHub Actions에서 캐시 스토리지 백엔드를 사용하는 예시를 다뤄요. 캐시 스토리지 백엔드에 대한 자세한 내용은 Cache storage backends 문서를 참고해요.

출처: 문서

본문

인라인 캐시 (Inline cache)

registry 캐시 예시처럼 옵션을 사용해 inline 캐시를 쓸 수 있어요:

name: ci

on:
  push:

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Login to Docker Hub
        uses: docker/login-action@v4
        with:
          username: ${{ vars.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4

      - name: Build and push
        uses: docker/build-push-action@v7
        with:
          push: true
          tags: user/app:latest
          cache-from: type=registry,ref=user/app:latest
          cache-to: type=inline

레지스트리 캐시 (Registry cache)

registry 캐시 익스포터로 레지스트리의 캐시 매니페스트나 (특수) 이미지 구성에서 캐시를 가져오거나 내보낼 수 있어요:

name: ci

on:
  push:

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - name: Login to Docker Hub
        uses: docker/login-action@v4
        # ...
      - name: Build and push
        uses: docker/build-push-action@v7
        with:
          push: true
          tags: user/app:latest
          cache-from: type=registry,ref=user/app:latest
          cache-to: type=registry,ref=user/app:cache,mode=max

GitHub Actions 캐시 (GitHub Actions cache)

type=gha 백엔드를 쓰면 GitHub Actions가 제공하는 캐시에 직접 캐시를 저장할 수 있어요:

- name: Build and push
  uses: docker/build-push-action@v7
  with:
    push: true
    tags: user/app:latest
    cache-from: type=gha
    cache-to: type=gha,mode=max

각 백엔드의 세부 옵션은 해당 캐시 백엔드 문서를 참고해요.

더 알아보기 (Learn more)