Where is the official MariaDB Container Image?
Easy question, easier answer. Docker Official Images are the official image distributor of MariaDB Server. It was years ago that the Docker Official Image of MariaDB Server gained all its environment variables in MARIADB_*
form and its fork on the MariaDB Corporation Docker Hub was deprecated and eventually removed. As a result of contributing to the Docker Official Images of MariaDB Server, the day to day maintenance was transferred to the MariaDB github organization. Here, the MariaDB Foundation, with support from MariaDB Corporation (now MariaDB plc) on server and releases, continue to develop and support the Docker Official Image.
Community
By working as a community, with the Docker Official Image maintainers, we leverage their considerable expertise in container best practices and ensure that what is ultimately released confirms to the highest standards and principles our users have come to expect.
By working on the MariaDB Server side and the Docker Official Images maintenance side we have been able to make improvements to the MariaDB Server benefiting all users and reduce rather some ugly workarounds in the docker-entrypoint.sh.
When anomalies happen such as SIGILL on IBM Power or s390x failing to build, it’s Docker Official Image maintainers that help diagnose the problem.
Rapid Release
Occasional server developers made changes that broke a container user’s use case like GH issue 417 and MDEV-23947 (yes by me), and because of this, we where able to write a test case and work around the issue. With Docker Inc’s supervision, release a tested work around the very next day. The work around is removed on the next release when upstream issues has been addressed.
Do our user’s get a delay in getting the latest image? No, Docker Official Image releases are part of our release process. Official Images get release notes, and containers are normally available within a day of the server release as timezones and manual review apply. So the latest is always there, no fuss, quality checked, minimal delays.
As we do these rapid releases to our users, the oversight and second eyes of the Docker Official Images keeps the ensure the quality of container releases for all our users.
To improve reliance on our “second eyes”, we’ve added a test suite, and Hadolint and Shellcheck into our CI. These validating the quality of the Dockerfile and the entry-point and healthcheck scripts.
Testing
As we have a test suite, the CI of the MariaDB Server, builds and tests against (what is to be) the next release of the Docker Official Images. Further more, with our own tests, this latest container (and the next server release) is tested against WordPress’ unit tests too. If you want to consume this image in your tests, you also have that opportunity as they are published on quay.io/mariadb-foundation/mariadb-devel:latest
(and major version tags + verylatest
+ {earliest,latest}{,-lts}
tags too) for consumption by anyone, anytime, and many are already doing so as part of their CI.
With test images available (with debuginfo), users have been able to go from bug report with sufficient bug information one day, to having a container build and with the fix the next day.
On bugs reports and issues with the MariaDB container itself, there are very few open issues. Most of the large outstanding queue have been resolved in the last few years with a combination of container and server fixes.
We regularly work with our MariaDB Operator community in ensuring compatibility is maintained and new features can be taken advantage of.
Features
The oversight of Dockers’ Official Images has not hampered the ability for us to significantly innovate on features that matter to our users like:
- Healthcheck.sh script, as health and liveliness/readiness can mean different things and encapsulating the expertise of server experts delivers this to users in a ready form.
- Increasing MARIADB_RANDOM_ROOT_PASSWORD randomness.
- MARIADB_PASSWORD / MARIADB_ROOT_PASSWORD Accepts any legal password, we can handle the shell/SQL escaping (new lines, quotes, utf8, try us).
- -rc tags, lts tags
- MARIADB_AUTO_UPGRADE=1
With community contributions we’ve added:
- Replication environment variables
- MARIADB_PASSWORD_HASH / MARIADB_ROOT_PASSWORD_HASH
Even within the quality and standards we gladly operate under, there’s still room for more.
Ecosystem is diversity
Just because we maintain a (singular) official image of MariaDB doesn’t mean its the only way to do it. Also prominent packagers of MariaDB in the ecosystem are:
Both of these providers generate a unique offering with different standards and themes consistent with their other containers.
Their users are our users, and if they have troubles (e.g. MDEV-27060), we’ll help our users and the originating projects.
Multi-architecture / Multiple tags
What do you get from Docker Official Images of MariaDB Server (from the official last release), four architectures, x86_64, Aarch64, Power64 LE, and S390x (excluded 10.4):
Tags: 11.1.2-jammy, 11.1-jammy, 11-jammy, jammy, 11.1.2, 11.1, 11, latest Architectures: amd64, arm64v8, ppc64le, s390x GitCommit: 70d8c97f486055689e9f5a6a133f8bfb0806632a Directory: 11.1 Tags: 11.0.3-jammy, 11.0-jammy, 11.0.3, 11.0 Architectures: amd64, arm64v8, ppc64le, s390x GitCommit: 73a6fc045e12961287d2f41a6473bbf4e0eddeba Directory: 11.0 Tags: 10.11.5-jammy, 10.11-jammy, 10-jammy, lts-jammy, 10.11.5, 10.11, 10, lts Architectures: amd64, arm64v8, ppc64le, s390x GitCommit: 73a6fc045e12961287d2f41a6473bbf4e0eddeba Directory: 10.11 Tags: 10.10.6-jammy, 10.10-jammy, 10.10.6, 10.10 Architectures: amd64, arm64v8, ppc64le, s390x GitCommit: 73a6fc045e12961287d2f41a6473bbf4e0eddeba Directory: 10.10 Tags: 10.9.8-jammy, 10.9-jammy, 10.9.8, 10.9 Architectures: amd64, arm64v8, ppc64le, s390x GitCommit: 73a6fc045e12961287d2f41a6473bbf4e0eddeba Directory: 10.9 Tags: 10.6.15-focal, 10.6-focal, 10.6.15, 10.6 Architectures: amd64, arm64v8, ppc64le, s390x GitCommit: 73a6fc045e12961287d2f41a6473bbf4e0eddeba Directory: 10.6 Tags: 10.5.22-focal, 10.5-focal, 10.5.22, 10.5 Architectures: amd64, arm64v8, ppc64le, s390x GitCommit: 73a6fc045e12961287d2f41a6473bbf4e0eddeba Directory: 10.5 Tags: 10.4.31-focal, 10.4-focal, 10.4.31, 10.4 Architectures: amd64, arm64v8, ppc64le GitCommit: 73a6fc045e12961287d2f41a6473bbf4e0eddeba Directory: 10.4
Value in Diversity
Containers are important for our users and with a diverse range skills in MariaDB Server and containers, our users will get the best from both.
Being part of a community with Docker Official Images helps us deliver a better MariaDB, quickly and with quality, to all our users.
We encourage all our user community to take further part in requesting features, and where needed, writing bug reports. Contributions of code/tests to the repository and/or documentation on the Knowledge Base (or your own blog) are always welcome. Fellow community members sometimes need a little help so please make them welcome with a little help on StackOverflow or Database Adminstrators StackExchange.