docker run -it --entrypoint=/bin/sh public.ecr.aws/lambda/java:17
cd /; du -sh
We see that this docker image has a size of 495 MB.
From AWS documentation I understand that cold starts are directly related with the size of base Java docker image so doing a further analysis on package sizes (top 10), we get:
As we can see, the library that takes most space is glibc-all-langpacks (107.8 MB, 21.7% of total size)
For the majority (I guess) of lambda programs that work with default locale settings, we could replace this library with glibc-minimal-langpack (which is just a couple of KB's in size).
This would allow faster downloads and faster cold starts (when image not cached).
On https://gallery.ecr.aws/lambda/java , would you consider building an image with minimal langpack? Default image could remain with glibc-all-langpacks.
Thanks.
Doing the following steps:
docker pull public.ecr.aws/lambda/java:17
docker run -it --entrypoint=/bin/sh public.ecr.aws/lambda/java:17
cd /; du -sh
We see that this docker image has a size of
495 MB
.From AWS documentation I understand that cold starts are directly related with the size of base Java docker image so doing a further analysis on package sizes (top 10), we get:
rpm -qa --queryformat '%10{size} - %-25{name} \t %{version}\n' | sort -n | tail -10
As we can see, the library that takes most space is
glibc-all-langpacks
(107.8 MB, 21.7% of total size)For the majority (I guess) of lambda programs that work with default locale settings, we could replace this library with
glibc-minimal-langpack
(which is just a couple of KB's in size).This would allow faster downloads and faster cold starts (when image not cached).
On https://gallery.ecr.aws/lambda/java , would you consider building an image with minimal langpack? Default image could remain with
glibc-all-langpacks
. Thanks.