Closed
Description
i user version 3.3.2 to build image ,my mac is arm64, but i want amd64 image. so when i build imamge i use func withPlatform("linux/amd64") to build x86 docker image.
<dependency>
<groupId>com.github.docker-java</groupId>
<artifactId>docker-java</artifactId>
<version>3.3.2</version>
</dependency>
docker version: 20.10.8
% docker version
Client:
Cloud integration: 1.0.17
Version: 20.10.8
API version: 1.41
Go version: go1.16.6
Git commit: 3967b7d
Built: Fri Jul 30 19:55:20 2021
OS/Arch: darwin/arm64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.8
API version: 1.41 (minimum version 1.12)
Go version: go1.16.6
Git commit: 75249d8
Built: Fri Jul 30 19:53:34 2021
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.4.9
GitCommit: e25210fe30a0a703442421b0f60afac609f950a3
runc:
Version: 1.0.1
GitCommit: v1.0.1-0-g4144b63
docker-init:
Version: 0.19.0
GitCommit: de40ad0
docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
default * docker
default default running linux/arm64, linux/amd64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6
code:
File dockerfile = new File("xx/DockerFIle)
DockerClient dockerClient = DockerClientBuilder.getInstance().build();
String image = imageName + SPLIT_STRING + version;
String imageId = dockerClient.buildImageCmd()
.withDockerfile(dockerfile)
.withPlatform("linux/amd64")
.withTags(Collections.singleton(image))
.awaitImageId();
error info:
Could not build image: failed to get destination image "sha256:ae91ec76ecf9be906e8e6e7771d568cbbdd5559a78e8e9e5cdc0564f1fce4426": image with reference sha256:ae91ec76ecf9be906e8e6e7771d568cbbdd5559a78e8e9e5cdc0564f1fce4426 was found but does not match the specified platform: wanted linux/amd64, actual: linux/arm64/v8