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