官方 MariaDB 容器镜像在哪里?
问题简单,答案更简单。Docker Official Images 是 MariaDB Server 的官方镜像分发者。几年前,MariaDB Server 的 Docker Official Image 就已经获得了所有 MARIADB_* 形式的环境变量,而 MariaDB Corporation Docker Hub 上的其分支已经被弃用并最终移除。由于对 MariaDB Server 的 Docker Official Images 的贡献,日常维护工作已移交给 MariaDB GitHub 组织。在这里,MariaDB 基金会在 MariaDB Corporation(现为 MariaDB plc)在服务器和版本发布方面的支持下,继续开发和支持 Docker Official Image。
社区
通过作为一个社区,与 Docker Official Image 维护者合作,我们利用他们在容器最佳实践方面的丰富专业知识,并确保最终发布的镜像符合我们用户期望的最高标准和原则。
通过在 MariaDB Server 端和 Docker Official Images 维护端共同努力,我们得以改进 MariaDB Server,使所有用户受益,并减少了 docker-entrypoint.sh 中一些相当难看的变通方案。
当发生异常时,例如 IBM Power 上的 SIGILL 或 s390x 构建失败,是 Docker Official Image 维护者帮助诊断问题。
快速发布
偶尔有服务器开发者做出的更改破坏了容器用户的用例,例如 GH issue 417 和 MDEV-23947(是的,我造成的),正因为如此,我们得以编写测试用例并解决该问题。在 Docker Inc. 的监督下,我们在第二天就发布了一个经过测试的变通方案。当上游问题得到解决后,该变通方案将在下一个版本中移除。
我们的用户获取最新镜像会延迟吗?不会。Docker Official Image 的发布是我们发布流程的一部分。Official Images 会有发行说明,而且由于时区和人工审核的原因,容器通常在服务器发布后的第二天内可用。因此,最新的镜像总是在那里,没有大惊小怪,质量经过检查,延迟最小。
在我们为用户进行这些快速发布时,Docker Official Images 的监督和额外审核确保了所有用户的容器发布质量。
为了提高对我们“额外审核”的依赖,我们在 CI 中添加了测试套件、Hadolint 和 Shellcheck。这些工具用于验证 Dockerfile 以及 entry-point 和 healthcheck 脚本的质量。
测试
由于我们有测试套件,MariaDB Server 的 CI 会构建并测试针对(即将发布的)下一版本 Docker Official Images。此外,通过我们自己的测试,最新的容器(以及下一个服务器版本)也会针对 WordPress 的单元测试进行测试。如果您想在测试中使用此镜像,您也有机会这样做,因为它们已发布在 quay.io/mariadb-foundation/mariadb-devel:latest
(以及主版本标签 + verylatest
+ {earliest,latest}{,-lts}
标签)上,供任何人随时使用,许多人已经在 CI 中这样做了。
通过提供测试镜像(包含调试信息),用户能够在某天提交包含足够信息的问题报告后,在第二天就获得包含修复的容器构建。
关于 MariaDB 容器本身的问题报告和缺陷,未解决的问题非常少。过去几年里,通过容器和服务器修复的结合,大部分积压的问题都已解决。
我们定期与我们的 MariaDB Operator 社区合作,确保兼容性得到维护,并能够利用新功能。
功能
Docker Official Images 的监督并未阻碍我们在对用户重要的功能上进行重大创新,例如
- Healthcheck.sh 脚本,因为健康检查和活性/就绪性可能意味着不同的事情,而整合服务器专家的专业知识能够以现成形式将其提供给用户。
- 增加 MARIADB_RANDOM_ROOT_PASSWORD 的随机性。
- MARIADB_PASSWORD / MARIADB_ROOT_PASSWORD 接受任何合法密码,我们可以处理 shell/SQL 转义(换行符、引号、utf8,请尽管尝试)。
- -rc 标签, lts 标签
- MARIADB_AUTO_UPGRADE=1
通过社区贡献,我们增加了
即使在我们乐于遵循的质量和标准框架内,仍有改进空间。
生态系统是多样性
仅仅因为我们维护一个(单一的)官方 MariaDB 镜像,并不意味着这是唯一的方法。生态系统中其他重要的 MariaDB 打包者包括
这两个提供商都提供独特的方案,其标准和主题与其其他容器一致。
他们的用户也是我们的用户,如果他们遇到问题(例如 MDEV-27060),我们将帮助我们的用户和原始项目。
多架构 / 多标签
您可以从 MariaDB Server 的 Docker Official Images(来自官方最新版本)中获得什么?四种架构:x86_64, Aarch64, Power64 LE 和 S390x(不包含 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
多样性的价值
容器对我们的用户非常重要,并且凭借在 MariaDB Server 和容器方面的多样化技能,我们的用户将从中获得最佳体验。
作为 Docker Official Images 社区的一部分,帮助我们更快、更高质量地为所有用户提供更好的 MariaDB。
我们鼓励所有用户社区进一步参与功能请求,并在需要时提交问题报告。欢迎向代码/测试仓库和/或知识库(或您自己的博客)贡献代码/测试和文档。社区成员有时需要一些帮助,因此请在 StackOverflow 或 Database Administrators StackExchange 上提供一点帮助,让他们感到受欢迎。