Docker Library – 官方 MariaDB 镜像维护
Docker Library 官方 MariaDB 镜像现在由 MariaDB Foundation 维护,至今已有六个月。如果您没有注意到,我们认为这是对我们的赞美,因为 Infosiftr 之前的 Docker Library 维护者已经做得很好。Infosiftr 仍然在版本发布前提供宝贵的质量保证。
有什么变化?
在我们社区的协助下,我们所做的工作是
时区
- 延续了 Infosiftr 关于 MARIADB_* 环境变量名称的贡献,并添加了 MARIADB_INITDB_SKIP_TZINFO 以保持一致性。
- 允许时区可以更改。
密码
- 环境变量 MYSQL_ALLOW_EMPTY_PASSWORD 仅适用于 root 用户。它确实让一些期望其适用于非 root 用户的人感到困惑。MARIADB_ALLOW_EMPTY_ROOT_PASSWORD 是命名更改中的一个小改动,但它更清晰。
- MARIADB_RANDOM_ROOT_PASSWORD/MYSQL_RANDOM_ROOT_PASSWORD 复杂性显著提高,这意味着启用 strict_password_validation 是可行的,因为密码满足复杂性要求。
- MARIADB_ROOT_PASSWORD 和 MARIADB_PASSWORD 经过适当的 shell 和 SQL 转义,因此您可以在任何 SQL MODE 下使用任何密码,甚至包括末尾的新行,并且它都会被准确设置。我敢挑战您找到一个现在容器不接受的有效密码。
MariaDB 配置
安全、质量和测试
- 为容器入口点提供了一个大型且持续维护的测试套件,该套件在 pull request 和 commit 时使用 GitHub actions 运行。
- 将测试套件集成到 MariaDB 开发 CI 中,以便在发布时继续工作。
- 使用 https://archive.mariadb.org 作为仓库 URL,以保持长期兼容性,这在之前的一篇博客文章中提到过。
- 现在构建容器时使用 https 拉取软件包。
文档和命名
- 更新了 https://hub.docker.com/_/mariadb 上的文档。
- 容器日志消息现在引用 MariaDB。
新功能
- Zstd 压缩的 SQL 文件现在在 docker-entrypoint-initdb.d 目录中受支持。
- Libjemalloc 已安装,可以通过环境变量
LD_PRELOAD=/usr/lib/$debarch-linux-gnu/libjemalloc.so.2
(在 MariaDB-10.2 镜像中是.1
)使用,其中$debarch
是架构名称,例如x86_64
、aarch64
、powerpc64le
或s390x
。使用此功能将使服务器使用 jemalloc 执行非 mmaped 内存分配。 - 得益于 IBM 提供的硬件,已将 IBM Linux on Z、s390x 的支持添加至 10.5 和 10.6 镜像中。
接下来是什么?
接下来是
- MDEV-25670 在容器中应用 mariadb_upgrade
- MDEV-25434 在容器中包含一个健康检查脚本。但是,默认情况下不会启用它。
- MDEV-25855 增加了对 Galera 复制和集群自动引导的支持
- 您要求的任何其他可以稳定交付的功能
如果您有任何改进建议,请告诉我们。