I have utilised docker buildx and CodeBuild to build my docker image with multiple architectures. However if I try to use the parent manifest image, which should select the correct architecture based on the host OS, I cannot create my Lambda. I get the error stating
The image manifest or layer media type for the source image <imageECRdetailsHere> is not supported.
However, if I specifically chose the image created for said architecture it will work.
I feel that this is a failing of Lambda Container images as one of the key points of having a manifest with multiple architectures is that I do not need to be specific about the image / platform when pulling the image.
Am I missing something here, or is this currently completely unsupported by AWS Lambda?
The image manifest matches the docker v2 specification, and works when pulling the image locally, and both work by forcing the --platform option. Is this a bug, a missing feature or just blatantly not supported?
The Lambda documentation states images that meet the manifest specifications are supported, but it appears that does not extend to manifest lists which are supported by the Docker image manifest V2, schema 2, which is supposed to be supported.
Hi Michael,
Don't you know if there are any plans to add support for multi-architecture container images/manifest to Lambda?
I've been searching in https://github.com/aws/containers-roadmap, but Lambda features are unfortunately not included there.
We have quite a nice use case for multi-arch image deployment: Our Lambda image is pulled-through-cache from public ECR repository. But as actual (latest) image in this public repository is only multi-architecture, we have to use single-architecture images, which are tied to specific commits and consequently, we are losing automatic updates of the image via pulling with pull-through-cache AWS feature.