Description
The mysql server Docker image sizes increased substantially beginning with the Jan 2025 quarterly releases (8.0.41, 8.4.4, 9.2.0), and remained elevated in the April 2025 releases (8.0.42, 8.4.5, 9.3.0). It's a ~35% increase in compressed image size, relative to the Oct 2024 releases (8.0.40, 8.4.3, 9.1.0).
Only the Oracle Linux based builds are affected. It looks related to the layer for mysqlshell.
For example, look at layer number 13 in mysql:8.0.40, and compare to mysql:8.0.41. That layer nearly doubled in size. And it seems surprising that the layer for mysqlsh
would suddenly become substantially larger than the layer for mysqld
...
Debian-based builds don't show an increase, for example 8.0.40-debian and 8.0.41-debian are nearly the same compressed size as each other. But the debian builds don't have a layer for mysqlshell so that's probably why.
After reviewing upstream package sizes for MySQL Shell on https://downloads.mysql.com/archives/shell/, there is indeed a big increase upstream between 8.0.40 and 8.0.41, so the root cause is arguably an upstream issue. Looking at mysql shell release notes, I'd wager it's from the item "Google V8 JavaScript engine is replaced by Oracle GraalVM".
So the root cause is an upstream issue, but... given that mysqlshell now takes up such a huge chunk of the image size, and given how commonly the mysql images are downloaded for use-cases which don't need mysqlshell, would it ever make sense to exclude it from the main mysql image tags? Or is this too much of a breaking change to consider?