감지와 빌드의 구분
빌드팩은 먼저 자신이 해당 응용에 필요한지 판단한다. 소스에 있는 의존성 정의 파일 등의 단서를 사용할 수 있다. 빌드 단계에서는 의존성을 준비하고 필요하면 컴파일하며 환경 변수와 시작 명령을 구성한다. 여러 빌드팩의 역할을 조합해 응용을 처리한다.
빌드 환경과 실행 환경
빌드 시 사용하는 기반 이미지는 빌드팩이 실행될 환경을 제공한다. 실행 시 기반 이미지는 최종 응용 이미지의 바탕이 된다. 빌드팩과 빌드 기반 이미지를 함께 묶은 빌더 이미지를 통해 필요한 구성을 배포할 수 있다.
개발자와 플랫폼의 역할
응용 개발자가 프로젝트마다 Dockerfile을 작성하는 대신 플랫폼이 공통 빌드 지식을 제공하는 방식이다. 프로젝트는 규격과 도구를 관리하고 여러 제공자가 언어별 빌드팩을 만든다. Pack은 소스를 이미지로 만들거나 빌드팩을 개발하고 패키징하는 명령행 구현이며, 선택한 빌드팩이 실제 지원 범위를 결정한다.
관련 문서
BuildKit / Docker Buildx / Jib / Ko 컨테이너 빌드 / 컨테이너 / 지속적 통합