0%

Dokcer buildx编译多环境镜像

新发布的Docker Desktop Community提供了实验性功能buildx. buildx使用 BuildKit 构建多种系统架构的Docker镜像。

Docker Desktop Community 2.1.0.0 contains the following experimental features.
Docker Buildx: Docker Buildx is a CLI plugin for extended build capabilities with BuildKit. For more information, see Working with Docker Buildx.

可以使用 $ docker buildx build 命令使用 BuildKit 构建镜像。该命令支持 –platform 参数可以同时构建支持多种系统架构的 Docker 镜像,大大简化了构建步骤。

Buildx builder

docker build 命令只能构建一个架构的镜像,又例如Docker for Linux 不支持构建 arm 架构镜像。由于 Docker 默认的 builder 实例不支持同时指定多个镜像,我们必须首先创建一个新的 builder 实例。

1
2
3
4
5
6
7
$ docker buildx create --use --name mybuilder --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master

$ docker buildx inspect mybuilder --bootstrap


$ docker buildx ls

构建镜像

Dockerfile 文件

1
2
3
4
5
FROM --platform=$TARGETPLATFORM alpine

RUN uname -a > /os.txt

CMD cat /os.txt
1
2
3
4
$ docker buildx build --platform linux/arm,linux/arm64,linux/amd64 -t myusername/hello . --push

# 查看镜像信息
$ docker buildx imagetools inspect myusername/hello