Docker GitHub Builder 아키텍처

Docker GitHub Builder 아키텍처

Docker GitHub Builder 아키텍처에서는 워크플로가 빌드를 "언제, 어떤 입력으로" 실행할지만 정하고, Docker가 관리하는 재사용 워크플로가 빌드 구현 자체를 소유해요. 이 분리는 저장소 워크플로를 짧게 유지하면서도 BuildKit, 캐싱, provenance, SBOM 생성, 서명, 멀티플랫폼 조립을 Docker가 관리하는 하나의 경로에 집중시켜요.

출처: 문서

본문

핵심 아키텍처 (Core architecture)

build.yml은 Dockerfile 기반 빌드의 진입점이고, bake.yml은 Bake 지향 빌드의 진입점이에요. Bake 정의는 타깃과 오버라이드의 출처(source of truth)로 남아요. 두 경우 모두 호출 측(저장소)이 여전히 트리거, 브랜치 조건, 권한, 시크릿, 타깃 선택, 메타데이터 입력, 이미지 출력 대 로컬 출력 선택 같은 저장소 정책을 소유해요.

각 플랫폼 job은 독립적으로 빌드되고, 워크플로가 결과를 하나의 호출자용 출력 계약으로 마무리해요:

requested platforms:
  linux/amd64,linux/arm64

conceptual platform jobs:
  linux/amd64 -> ubuntu-24.04
  linux/arm64 -> ubuntu-24.04-arm

러너 선택 (Runner selection)

runner 입력은 단일 GitHub 호스팅 Linux 러너 라벨 또는 줄바꿈으로 구분된 플랫폼 매핑을 받아요.

기본값은 GitHub 호스팅 Ubuntu 러너를 사용하는 플랫폼 매핑이에요:

runner: |
  default=ubuntu-24.04
  linux/arm=ubuntu-24.04-arm

이렇게 하면 요청한 각 플랫폼에 맞는 러너가 자동으로 선택돼요.

더 알아보기 (Learn more)