Docker多平台构建

问题 今天遇到个问题,Mac m1 上拉取之前java构建的程序发现跑不起来,第一反应arm平台不兼容之前在x86架构下构建的镜像。 现如今云厂商好多服务器都是arm架构的,加上window11都支持arm架构了(Windows on ARM),arm以后会越来越频繁使用了。 这时就得祭出docker出的利器 buildx,可以一次构建多个平台的镜像。废话不多,开搞。。 buildx其实是个容器工具 moby/buildkit:buildx-stable-1 # Create a new builder ➜ ~ docker buildx create --name mybuilder --bootstrap --use # 查看builder ➜ ~ docker buildx inspect mybuilder Name: mybuilder Driver: docker-container Nodes: Name: mybuilder0 Endpoint: unix:///var/run/docker.sock Status: running Buildkit: v0.11.2 Platforms: linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6 构建 # 一条命令搞定,会pudh到registry 区别于常规build ➜ ~ docker buildx build --platform linux/arm64/v8,linux/amd64 -t registry....

January 4, 2023