docker-library / docker-library/mysql

MySQL image sizes increased greatly due to mysql shell

Open
#1,110 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
2.6k
Forks
2.2k
PR merge metrics
No merged PRs in 30d

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?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the linked Docker Hub layers for MySQL 8.0.40 and 8.0.41, then review the MySQL Shell archive sizes and release notes mentioned in the issue. Determine whether excluding mysqlshell from the main Oracle Linux image tags is viable without an unacceptable breaking change; done means the packaging decision and its consequences are clearly established.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, mysql, shell
Domain
databases, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.