[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] automation: set architecture in docker files



On Mon, Nov 13, 2023 at 04:10:24PM -0800, Stefano Stabellini wrote:
> On Mon, 13 Nov 2023, Roger Pau Monne wrote:
> > Pass the desired architecture of the image in the FROM instruction if the
> > image is possibly multi-platform.
> > 
> > This allows using the x86 Dockerfiles on OS X on arm64 hardware.
> > 
> > No functional change intended.
> > 
> > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> 
> Although I am not opposed to this change, so far we have been using:
> arm64v8/alpine:3.18
> 
> for x86 it is not specified but it would be:
> amd64/alpine:3.18
> 
> Two options:
> 1) we add amd64/ everywhere and leave the arm containers alone
> 2) we change all containers, including the arm containers, to use the
> --platform option
> 
> I don't think is a good idea to have 2 different ways to specify the
> architecture for x86 and arm containers

I'm not an expert on this, but attempting to use (2):

-FROM arm64v8/alpine:3.18
+FROM --platform=linux/arm64v8 alpine:3.18

Does not work for me:

% make -C automation/build alpine/3.18-arm64v8
docker build --pull -t registry.gitlab.com/xen-project/xen/alpine:3.18-arm64v8 
-f alpine/3.18-arm64v8.dockerfile alpine
[+] Building 1.4s (3/3) FINISHED                                                
  docker:desktop-linux
 => [internal] load .dockerignore                                               
                  0.0s
 => => transferring context: 2B                                                 
                  0.0s
 => [internal] load build definition from 3.18-arm64v8.dockerfile               
                  0.0s
 => => transferring dockerfile: 818B                                            
                  0.0s
 => ERROR [internal] load metadata for docker.io/library/alpine:3.18            
                  1.4s
------
 > [internal] load metadata for docker.io/library/alpine:3.18:
------
3.18-arm64v8.dockerfile:1
--------------------
   1 | >>> FROM --platform=linux/arm64v8 alpine:3.18
   2 |     LABEL maintainer.name="The Xen Project" \
   3 |           maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
--------------------
ERROR: failed to solve: alpine:3.18: no match for platform in manifest 
sha256:eece025e432126ce23f223450a0326fbebde39cdf496a85d8c016293fc851978: not 
found
make: *** [alpine/3.18-arm64v8] Error 1

That's why I've left the prefixed images alone.

I could prefix the x86 images with amd64/ if that's preferred, I
didn't try that option, as the Docker manual suggested using
--platform.

Thanks, Roger.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.