Docker 进阶
Mike Metzger
Data Engineering Consultant
linuxwindowsmacosx64_64 或 amd64arm64arm7os/cpu,如 linux/amd64


--platform=$BUILDPLATFORM 标志$BUILDPLATFORM 表示运行构建的宿主平台ARG 指令TARGETOS 和 TARGETARCHARG 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 buildxdocker buildx 比 docker build 提供更多命令和功能,可指定平台docker buildx build --platform linux/amd64,linux/arm64 -t multi-platform-app .
docker buildx create --bootstrap --use 命令Docker 进阶