プッシュでDocker画像を作成する人々 - 時間の経過とともにどのように異なるバージョンを管理しますか?時間の経過とともにドッカー画像を管理する
- 彼らはすべて自分のタグを取得していますか? gitハッシュに基づいてタグ付けしていますか?
- しばらくして古い画像を削除しますか?彼らはそれぞれ1GB以上のスペースを取らないのですか?
プッシュでDocker画像を作成する人々 - 時間の経過とともにどのように異なるバージョンを管理しますか?時間の経過とともにドッカー画像を管理する
どのように時間をかけて異なるバージョンを管理しますか?
最初に注意しなければならないのは、タグが長期にわたって信頼できないことです。それらは同じものを参照するか、または存在することを保証されていませんので、Dockerfile LABEL
を使用してください。これは一貫性があり、常に画像と共に保存されます。 label-schema.orgは良い出発点です。
彼らはすべて自分のタグを取得しますか? gitハッシュに基づいてタグ付けしていますか?
すべてのビルドを参照するためにユニークなものが必要な場合は、画像sha256 sumを使用してください。余分なビルドメタデータをイメージに添付したい場合は、前述のようにLABEL
を使い、必要なバージョン管理システムとgitハッシュを含めます。 sha256の和音が激しく聞こえる場合は、複数のイメージリリースを参照するためにタグが必要になるため、システムが必要になります。
Gitタグ、datetimes、ビルド番号はすべて動作します。あなたの環境と、あなたが「リリース」として一緒に結びつけようとしているものに応じて、それぞれの長所と短所があります。 DockerイメージはDockerファイルからgitハッシュで取得されるかもしれませんが、別の場所にある画像FROM
を取得すると、そのgitハッシュからビルドしても一貫したイメージは生成されません。
しばらくして古い画像を削除しますか?
リテンションは、ソフトウェア/システム/企業の要件またはポリシーに完全に依存します。監査要件が高く、ビルド/リリース保持時間が長くなり、「このビルドでこれらのテストを再実行したい」という状況になってきました。他の環境では、保持要件を低下させる傾向のある最小限の監査しかありません。いくつかの場所では、リリース管理を全く行おうとしない(これは悪い)。これは実際にあなたの特定の環境のためにここにいる誰かによって答えられることはできません、それに固執することは良い考えですが、最小限があります。
基本要件には、保存された各制作リリースごとのアーチファクトがあります。これは、一般的に歴史的な目的のために「永遠」です。積極的に2つ以上のリリースを見直すことは非常にまれです(これはあなたのアプリにも左右されます)。アーカイブは良いアイデアで、安価なストレージ/ホスティングの2番目のレジストリで簡単にできます。あなたの貴重なssdのではない)。
すべての開発ビルドを時間の経過とともに保持する必要はありませんでした。保持は通常、開発/リリースサイクルに従います。あなたの現在のリリース+次のリリースからビルドにアクセスする必要はまれです。 LABEL + tag devのビルドが適切であることを忘れないでください。クリーンアップは簡単です。 -dev
-snapshot
-alpha.0
何でも。
それぞれ1GB以上の空き容量がありますか?
It's normally less than you thinkただし、OSイメージがあるアプリケーションの上部にあるように大きくすることができます。だから、多くの人がalpineで始まるのは、musl libcと互換性のないものがない限り、ほとんどのディストリビューションに比べて小さいからです。