Docker ระดับกลาง
Mike Metzger
Data Engineering Consultant
linuxwindowsmacosx64_64 หรือ amd64arm64arm7os/cpu เช่น linux/amd64


--platform=$BUILDPLATFORM$BUILDPLATFORM แทนแพลตฟอร์มของโฮสต์ที่รันการบิลด์ARGTARGETOS และ TARGETARCHARG TARGETOS TARGETARCHenv ก็ได้# Initial stage, using local platform FROM --platform=$BUILDPLATFORM golang:1.21 AS build# Copy source into place WORKDIR /src COPY . .# Pull the environment variables from the host ARG TARGETOS TARGETARCH# Compile code using the ARG variables RUN env GOOS=$TARGETOS GOARCH=$TARGETARCH go build -o /final/app .# Create container and load the cross-compiled code FROM alpine COPY --from=build /final/app /bin
docker buildx พร้อมตัวเลือกต่าง ๆ แทน docker builddocker buildx มีคำสั่งและความสามารถมากกว่า docker build รวมถึงการระบุแพลตฟอร์มเป้าหมายได้docker buildx build --platform linux/amd64,linux/arm64 -t multi-platform-app .
docker buildx create --bootstrap --useDocker ระดับกลาง