Skip to content

"unknown manifest mediaType" when build the binary on AArch64 #35841

@arm64b

Description

@arm64b

Description
PR #35773 replace the legacy docker images with multi-arch ones on AArch64, but this PR depends on PR #35772 to support fat manifest images download, so it we don't have this PR merged, the make binary build will always trigger below error messages:

Step 27/34 : RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images    buildpack-deps:jessie@sha256:dd86dced7c9cd2a724e779730f0a53f93b7ef42228d4344b25ce9a42a1486251   busybox:latest@sha256:bbc3a03235220b170ba48a157dd097dd1379299370e1ed99ce976df0355d24f0    debian:jessie@sha256:287a20c5f73087ab406e6b364833e3fb7b3ae63ca0eb3486555dc27ed32c6e60   hello-world:latest@sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c
 ---> Running in db4f4f2bca0f
error: unknown manifest mediaType (library/buildpack-deps:jessie@sha256:dd86dced7c9cd2a724e779730f0a53f93b7ef42228d4344b25ce9a42a1486251): 'application/vnd.docker.distribution.manifest.list.v2+json'
The command '/bin/sh -c ./contrib/download-frozen-image-v2.sh /docker-frozen-images     buildpack-deps:jessie@sha256:dd86dced7c9cd2a724e779730f0a53f93b7ef42228d4344b25ce9a42a1486251   busybox:latest@sha256:bbc3a03235220b170ba48a157dd097dd1379299370e1ed99ce976df0355d24f0    debian:jessie@sha256:287a20c5f73087ab406e6b364833e3fb7b3ae63ca0eb3486555dc27ed32c6e60   hello-world:latest@sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c' returned a non-zero code: 1
Makefile:124: recipe for target 'build' failed
make: *** [build] Error 1

Steps to reproduce the issue:
On AArch64 platforms(If we replace the legacy with multi-arch ones on other platforms, I believe it will have the same issue):

  1. pull the latest moby code
  2. make binary
  3. build of above step 2 will fail

Describe the results you received:
Build fails since it can't handle fat manifest with current contrib/download-frozen-image-v2.sh

Describe the results you expected:
Build succeed to generate the binaries no matter the frozen images are legacy or multi-arch.

Additional information you deem important (e.g. issue happens only occasionally):
Always on AArch64 platforms.
Output of docker version:

Client:
 Version:      1.13.1
 API version:  1.26
 Go version:   go1.6.2
 Git commit:   092cba3
 Built:        Thu Nov  2 06:39:28 2017
 OS/Arch:      linux/arm64

Server:
 Version:      dev
 API version:  1.35 (minimum version 1.12)
 Go version:   go1.9.2
 Git commit:   72a3770
 Built:        Fri Dec  8 05:10:03 2017
 OS/Arch:      linux/arm64
 Experimental: false

Output of docker info:

Containers: 63
 Running: 0
 Paused: 0
 Stopped: 63
Images: 574
Server Version: dev
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins: 
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 89623f28b87a6004d4b785663257362d1658a729 (expected: v1.0.0)
runc version: b2567b37d7b75eb4cf325b77297b140ea686ce8f
init version: 949e6fa
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.9.0-16-generic
Operating System: Ubuntu 16.04.2 LTS
OSType: linux
Architecture: aarch64
CPUs: 46
Total Memory: 94.26 GiB
Name: ubuntu
ID: 3SLK:XAG2:2XMR:JADN:2NQ4:DGGO:PV7G:T5LN:FXSD:N5VU:JCZX:SWZS
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: arm64b
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Additional environment details (AWS, VirtualBox, physical, etc.):

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions