Jenkins を通じて None のイメージを定期的にクリーンアップする方法

Jenkins を通じて None のイメージを定期的にクリーンアップする方法

序文

継続的なコード配信のプロセスで、Jenkins を利用して Docker イメージを作成すると、None という名前の中間イメージが多数生成されます。これらのイメージは、プロジェクトの作成プロセス全体が完了した後はあまり重要ではありません。また、スペースを占有し、定期的にクリーンアップする必要があります。手動でのクリーンアップは非常に面倒なので、定期的なクリーンアップがあります。

Jenkins は、使用されるプラットフォームに関係なく、プロジェクトの継続的な統合と継続的な配信を可能にする強力なアプリケーションです。あらゆる種類のビルドや継続的インテグレーションを処理できる無料のソース コードです。 Jenkins との統合は、さまざまなテストおよびデプロイメント手法に使用できます。 Jenkins は継続的インテグレーションを可能にするソフトウェアです。

詳しい紹介を見てみましょう。

1. 手動洗浄

比較的単純なクリーンアップ方法は、単一の none イメージが生成された場合に、イメージをクリーンアップするコマンドを手動で実行する場合に適しています。次のコマンドを実行します。

docker rmi $(docker イメージ -f "dangling=true" -q)

ローカルにnoneのミラーがないので、実行時に次の効果しか見られません。

2. プロジェクト完了後の片付け

Jenkins で CI 準拠のプロジェクトをビルドする場合、プロダクション プロセスが完了した後のクリーンアップを、ビルド実行スクリプトで次のように設定できます。

スクリプトは次のとおりです。

echo ---------------クリア画像...------------------
clearImagesList=$(docker images -f "dangling=true" -q)
if [ ! -n "$clearImagesList" ]; then
echo "クリーンアップが必要な画像はありません。"
それ以外
docker rmi $(docker イメージ -f "dangling=true" -q)
「明らかな成功」をエコーし​​ます。
フィ

プロジェクトをビルドするときにこれを実行すると、プロジェクト自体の構築プロセス中に生成された None イメージがクリアされ、プロジェクト自体の中間生成物がクリアされます。

ただし、重大な問題があります。2 つ以上のプロジェクトを同時にビルドしている場合、最初のビルドが完了した後に実行されるクリーンアップ スクリプトは、ビルド中のプロジェクトに影響を与え、ビルド プロセス中に生成された none を削除します。ただし、削除に失敗してエラーが発生し、最初のプロジェクトのビルドが失敗します。この方法は、複数のプロジェクトには推奨されません。Jenkins で実行されているタスクが 1 つだけの場合は、問題ありません。

3. スケジュールされたタスクのクリーンアップ

私はこの方法を好みます。新しい Jenkins スケジュール タスクを作成します。たとえば、夜の 12 時に none のミラーをクリーンアップするように設定します。手順は次のとおりです。

1. Jenkins で任意の名前 (私の場合は ClearImage) で新しいプロジェクトを作成します。

2. トリガーを作成し、Poll SCM を選択して、スケジュールされた時間を設定します。たとえば、早朝にクリーンアップするように設定しましたが、他の時間を設定することもできます。具体的な設定ルールについては、右側の疑問符を参照してください。

3. ビルド スクリプトを実行します。スクリプトの内容は既に指定されています。保存するだけです。

即時ビルドを手動で実行して、それが有効かどうかを確認します。

コンソール出力を表示します。

出力が完了しました: ビルドが成功しました。


要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Jenkins を使用して Git+Maven 自動ビルドを設定する方法
  • Asp.net Core Jenkins Docker のワンクリックデプロイの実装
  • CentOS7 で Jenkins+Maven+Git 継続的インテグレーション環境を構築する方法
  • Jenkins のインストールと設定に関する注意事項
  • Docker+Jenkins+Gitlab+Djangoアプリケーションデプロイ実践の詳細な説明
  • Jenkins の紹介と Docker で Jenkins をデプロイする方法
  • Jenkins での Log Parse の使い方の詳細な説明
  • Docker コンテナは Jenkins を使用して Web プロジェクトをデプロイします (概要)
  • Jenkins で Springboot アプリケーションを自動的にデプロイする方法の詳細な説明
  • Jenkins の Publish Over SSH プラグインを使用してプロジェクトをリモート マシンにデプロイする手順

<<:  Xampp サーバーで MySQL パスワードを変更する方法 (画像付き)

>>:  JavaScript ベースのシンプルなカルーセルの実装

推薦する

ウェブページの右下隅に「いいね!」カード効果を実現するための CSS (サンプルコード)

効果 HTML を実装するには、まずクリーンな HTML ページを準備し、ノードを記述します。 &l...

HTML 特殊文字変換表

キャラクター小数点文字番号エンティティ名---未使用空間---スペースバー! ! ---感嘆符「 」...

CentOS 7.5 が Varnish キャッシュサーバー機能を導入

1. ワニスの紹介Varnish は、高性能なオープンソースのリバースプロキシサーバーおよび HTT...

Docker 自動ビルド 自動ビルド実装プロセス図

自動ビルドとは、Docker Hub を使用して、Dockerfile ファイルを含む GitHub...

MySQL バッチ追加および保存メソッドの例

ストレステストにログインする際には、多くの異なるユーザーが必要となり、データベースに新しいデータを追...

WeChatミニプログラムはuni-appを通じて世界中に共有されます

実際の使用では、ミニプログラムを友人や友人サークルと共有する必要があることが多く、通常は一度に 1 ...

CSS3を使用してフォントカラーグラデーションを実装する

Animation.css を使うと公式サイトのフォントがだんだんと変わっていくのが分かりました。c...

CSS3 のカラー値 RGBA とグラデーションカラーの使用方法の紹介

CSS3以前は、グラデーション画像は背景画像としてのみ使用できました。 CSS3 のグラデーション構...

MySqlエスケープの詳細な使用例

MySQL エスケープエスケープとは、エスケープ文字の本来の意味を意味します。エスケープ文字の目的は...

MySQL Community Server 8.0.12 のインストールと設定方法のグラフィックチュートリアル

MySQL 8 は、NoSQL、JSON などのサポートなど、まったく新しいエクスペリエンスをもたら...

Jenkins を通じて None のイメージを定期的にクリーンアップする方法

序文継続的なコード配信のプロセスで、Jenkins を利用して Docker イメージを作成すると、...

Linux で完全な Samba サーバーを構築する方法 (CentOS バージョン)

序文smb は、クライアントとサーバー間の Web 接続および情報通信に使用できるプロトコルの名前で...

コードブロックのハイライトをコピーして表示できる js プラグイン highlight.js + clipboard.js 統合

主に2つの側面から: 1. ハイライト/改行2. コードのコピーボタンこれら両方には既製のプラグイン...

MySQL 5.7 のキーワードと予約語の詳細な説明

序文MySQL と Oracle のキーワードはまったく同じではありません。Oracle データベー...

mysql のファイル mysql-bin.000001 とは何ですか? 削除できますか?

ポートを使用して MySQL をインストールした後、しばらくすると /var の容量が不足しているこ...