local·tar 익스포터

local·tar 익스포터 (Local and tar exporters)

local·tar 익스포터는 빌드 결과의 루트 파일시스템을 로컬 디렉터리로 내보내요. 컨테이너 이미지가 아닌 산출물을 만드는 데 유용해요.

  • local은 파일과 디렉터리를 내보내요.
  • tar은 같은 내용을 tarball로 묶어 내보내요.

출처: 문서

본문

시놉시스 (Synopsis)

$ docker buildx build --output type=local[,parameters] .
$ docker buildx build --output type=tar[,parameters] .

사용 가능한 매개변수 목록은 원본 문서의 표를 참고해요.

local 익스포터로 멀티플랫폼 빌드 (Multi-platform builds with local exporter)

dest 매개변수가 멀티플랫폼 빌드 출력을 어떻게 구성할지 제어해요.

플랫폼별 파일을 만드는 다음 Dockerfile을 고려해요:

FROM busybox AS build
ARG TARGETOS
ARG TARGETARCH
RUN mkdir /out && echo foo > /out/hello-$TARGETOS-$TARGETARCH

FROM scratch
COPY --from=build /out /

플랫폼별 분할 (Split by platform, default)

기본적으로 local 익스포터는 각 플랫폼마다 별도 하위 디렉터리를 만들어요:

$ docker buildx build \
  --platform linux/amd64,linux/arm64 \
  --output type=local,dest=./output \
  .

이렇게 하면 다음과 같은 디렉터리 구조가 생성돼요:

output/
├── linux_amd64/
│   └── hello-linux-amd64
└── linux_arm64/
    └── hello-linux-arm64

이처럼 플랫폼별 결과를 겹치지 않게 정리해 주므로, 플랫폼별 산출물을 만들 때 유용해요.

더 알아보기 (Learn more)