중급 Docker
Mike Metzger
Data Engineering Consultant
linuxwindowsmacosx64_64 또는 amd64arm64arm7os/cpu 형식으로 표기합니다. 예: linux/amd64


--platform=$BUILDPLATFORM 플래그를 사용합니다$BUILDPLATFORM은 빌드를 실행하는 호스트의 플랫폼을 나타냅니다ARG 지시어를 사용합니다TARGETOS와 TARGETARCH입니다ARG TARGETOS TARGETARCHenv 명령으로 설정할 수 있습니다# 초기 단계: 로컬 플랫폼 사용 FROM --platform=$BUILDPLATFORM golang:1.21 AS build# 소스 복사 WORKDIR /src COPY . .# 호스트의 환경 변수 가져오기 ARG TARGETOS TARGETARCH# ARG 변수로 컴파일 RUN env GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /final/app .# 컨테이너 생성 및 크로스 컴파일 산출물 적재 FROM alpine COPY --from=build /final/app /bin
docker build 대신 다양한 옵션과 함께 docker buildx를 사용해야 합니다docker buildx는 플랫폼 지정 등 docker build보다 더 많은 명령과 기능을 제공합니다docker buildx build --platform linux/amd64,linux/arm64 -t multi-platform-app .
docker buildx create --bootstrap --use 명령으로 생성합니다.중급 Docker