Docker Hub 上の公式リポジトリ

公式リポジトリ(Official Repositories) とは、Docker Hub 上でプロモートされている Docker リポジトリの集まりです。これらは次のように設計されています。

  • 必要不可欠なベース OS リポジトリ(例: ubuntucentos )を提供し、多くのユーザにとっての開始点となるものです。
  • 有名なプログラミング言語、データ・ストア、他のサービス、プラットフォーム・アス・ア・サービス(PaaS)のような、各種ソリューションの集まりを提供します。
  • 適時セキュリティ・アップデートを確実に提供します。特に、Docker Hub 上の多く有名な公式リポジトリにとって重要です。
  • ソフトウェア・ベンダにとって、更新やプロダクトのサポート・バージョンを配布するチャンネルを提供します。Docker Hub 上の Organization アカウントも同様の役割を提供できますが、こちらは何が公開されるかの注意深いレビューや規約がありません。

Docker 社は、全ての公式リポジトリの内容に関し、レビューと公開に責任を持つ専用チームを提供しています。このチームは、上流のソフトウェア・メンテナ、セキュリティ専門家、幅広い Docker コミュニティと協調しています。

上流のソフトウェア作者が対応する公式リポジトリのメンテナンスにあたり、その優先度を厳密に要求していません。公式リポジトリのイメージ作成・管理は公開されたプロセスです。これらは GitHub 上で展開されています。誰でもフィードバック、コードの貢献、プロセス変更の提案、あるいは新しい公式リポジトリの提案も可能です。

公式リポジトリを使うべきですか?

新しい Docker ユーザにとって、各プロジェクトの公式リポジトリは励みになります。これらのリポジトリには、明確なドキュメントがあり、ベスト・プラクティスを提供し、そして、一般的な利用例のために設計されています。高度なユーザにとっては公式リポジトリにある Dockerfile が学習プロセスにおいて役立つでしょう。

公式リポジトリからの分岐は、一般的にイメージ容量の最適化が求められます。例えば、多くのプログラミング言語か重ねられたイメージで、モジュールのインストールをサポートしているツールチェーンを構築するのは、コードの最適化に依存します。高度なユーザであれば、コンパイル済みの必要なライブラリのみのイメージを構築することで、容量を節約できます。

pythonruby のように、いくつかの言語スタックは -slim タグを持っており、これら最適化のために異なった形で設計されています。「slim」派生だけでは不十分なため、公式リポジトリをベースとした OS イメージからの継承を推奨します。これはメンテナンスの継続を重複して行うよりも効果的だからです。

私が改良できますか?

公式リポジトリには、ドキュメントには User Feedback (ユーザ・フィードバック)セクションがあり、対象のリポジトリに関する詳細を扱います。多くの場合、GitHub リポジトリには公式リポジトリの Dockerfile が含まれています。また、issue トラッカーも利用できます。一般的なフィードバックとサポートの質問は、Freenode IRC 上の #docker-library で直接行うべきです。

私が新しい公式リポジトリを作成できますか?

上位の手法としては、GitHub におけるプルリクエストの提案によって、公式リポジトリが動き出します。以下の GitHub リポジトリで詳細や提案に必要なものが確認できます。

公式リポジトリ・チームは、コミュニティのコントリビュータの助けにより、作者に対して提案やフィードバックを公式に提供します。この初期レビュー・プロセスには、提案が承認されるまでに行ったり来たりすることがあります。

また、レビューのプロセス中では主観的な判断も含まれます。主観的な事項は、基本的な質問で煮詰めます「このイメージは一般的に使いやすいだろうか?」 たとえば python 公式リポジトリでは、大きな Python 開発コミュニティにとって「一般的に使いやすいか」です。これが先週 Python で書かれた無名のアドベンチャー・ゲームだとしてもです。

新しい提案が承認されると、作者はイメージの更新やユーザのフィードバック対応の継続に対する責任があります。公式リポジトリ・チームはイメージの配布と Docker Hub 上のドキュメントに対する責任があります。公式リポジトリの更新にあたり、複数のプルリクエストはレビューの少ないプロセスを辿ることもあるでしょう。公式リポジトリチームは、全ての変更に対して最終的に対応する門番です。公式リポジトリチームが、品質に対するリスクやセキュリティ問題が発生しないよう助力します。

注釈

もし公式リポジトリの提案に興味があるとき、まず Docker 社とプライベートに議論したい場合は、リクエストを partners@docker.com にお送りください。ただし、迅速ではありませんし、支払いオプションもありません。

参考

Official Repositories on Docker Hub
https://docs.docker.com/docker-hub/official_repos/