创建builder
docker buildx create --use --name mutli-arch
创建后会成为默认的builder,通过如下命令查看当前使用的builder(带星号的是默认的builder)
docker buildx ls
如果可执行程序支持多架构
构建镜像
docker buildx build --platform=linux/amd64,linux/arm64 -t demo:v0.1 -f Dockerfile . --push
如果builder不对,则指定builder进行构建镜像
docker --context=mutli-arch build --platform=linux/amd64,linux/arm64 -t demo:v0.1 -f Dockerfile . --push
验证
查看manifest是否是多架构
docker buildx imagetools inspect demo:v0.1
如果可执行程序支持多架构
构建镜像
docker build -t demo:v0.1-arm64 -f Dockerfile-arm64 .
docker build -t demo:v0.1-amd64 -f Dockerfile-amd64 .
也可以通过build arg复用一个dockerfile
docker build --build-arg ARCH=arm64 --build-arg OS=linux -t demo:v0.1-arm64 -f Dockerfile .
docker build --build-arg ARCH=amd64 --build-arg OS=linux -t demo:v0.1-amd64 -f Dockerfile .
创建manifest
docker manifest create demo:v0.1 demo:v0.1-arm64 demo:v0.1-amd64
docker manifest annotate demo:v0.1 demo:v0.1-amd64 --os linux --arch amd64
docker manifest annotate demo:v0.1 demo:v0.1-arm64 --os linux --arch arm64
推送镜像和manifest
docker manifest push demo:v0.1
docker push demo:v0.1-arm64
docker push demo:v0.1-amd64
网友评论