Docker GitHub Builder

Docker GitHub Builder

전통적인 접근 방식에서는 저장소가 빌드가 어떻게 실행되는지의 모든 세부 사항을 소유해요. 그 방식도 동작하지만, 모든 저장소가 자체 러너 선택, 캐시 설정, Provenance 설정, 서명 동작, 멀티플랫폼 매니페스트 처리를 각자 유지해야 해요.

Docker GitHub Builder는 그 구현을 Docker가 관리하는 재사용 워크플로로 옮겨서, 여러분의 워크플로는 언제 빌드할지와 어떤 입력값을 넘길지만 결정하면 되게 해요.

출처: 문서

본문

이 차이는 job 정의에서 가장 쉽게 드러나요. 기존 워크플로는 각 액션 단계를 일일이 나열해요:

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 QEMU
        uses: docker/setup-qemu-action@v4
      
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v4
        
      - name: Docker meta
        uses: docker/metadata-action@v6
        id: meta
        with:
          images: name/app

      - name: Build and push
        uses: docker/build-push-action@v7
        # ...

반면 Docker GitHub Builder를 쓰면 Docker가 관리하는 재사용 워크플로(docker/github-builder)를 호출하는 것만으로 로그인, QEMU, Buildx 설정, 메타데이터, 빌드·push가 전부 처리돼요. 워크플로는 빌드 트리거와 입력값만 결정하면 됩니다.

이어서

  • Build with Docker GitHub Builder: Dockerfile로 빌드하고 push하는 재사용 워크플로 사용법
  • Bake with Docker GitHub Builder: Bake 정의로 빌드하는 재사용 워크플로 사용법

자세한 내용은 다음 주제를 참고해요.

더 알아보기 (Learn more)