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 ベースのシンプルなカルーセルの実装

推薦する

航空機戦争ゲームを実装するためのJavaScript

この記事では、キャンバスとjsを使用して簡単な飛行機戦争を実装する方法を参考までに紹介します。具体的...

よく使用される入力テキストボックスの内容は自動的に垂直方向に中央揃えされ、クリックするとデフォルトのプロンプトテキストは空になります。

3つの機能: 1. コンテンツの垂直方向の自動中央揃え2. デフォルトのプロンプトテキストは灰色で表...

Windows での MySQL の詳細なインストール手順と基本的な使用方法

目次1. MySQLをダウンロードする2. MySQLをインストールする3. MySQL の基本的な...

Linuxで静的ネットワーク接続を構成する方法

Linux システムのネットワーク接続を構成するのは難しい場合があります。幸いなことに、多くの新しい...

CSS 位置プロパティが絶対の場合のパーセンテージ値の計算

位置が絶対の場合、関連する属性のパーセンテージは、参照先の要素 (包含ブロック) を基準として計算さ...

JS オブジェクト配列の重複排除のための 3 つの方法の例と比較

目次1. 重複排除前後のデータの比較2. 使い方1. フィルターとマップを使用する2. 削減を使用す...

Webデザインチュートリアル(8):Webページの階層と空間デザイン

<br />前回の記事:Webデザイン講座(7):Webページ制作の効率化1:必要な小言...

react+antd.3x は IP 入力ボックスを実装します

この記事では、IP入力ボックスを実装するための react+antd.3x の具体的なコードを参考ま...

MySQL ビューの原則と使用例の概要

この記事では、MySQL ビューの原理と使用法についてまとめます。ご参考までに、詳細は以下の通りです...

高度な CSS の 3 つの方法を使用して複数行の省略を実装するサンプル コード

序文これは古くからの要望ですが、オンラインで解決策を探している人はまだ多く、特に検索結果の上位にラン...

ウェブ開発者やデザイナーにとって欠かせないオンラインウェブツールとアプリケーション

これまでの記事で、フロントエンド開発者にとって必須のツール、スクリプト、リソースのコレクションを紹介...

Webデザイン講座(4):素材と表現について

<br />前回のWebデザインチュートリアル:Webデザインチュートリアル(3):デザ...

トップナビゲーションバー機能を実現するCSS+HTML

ナビゲーション バー、固定トップ ナビゲーション バー、およびセカンダリ メニューの実装効果図の実装...

ページ内の検索エンジンの呼び出しはBaiduを例に挙げています

今日、突然、自分のウェブページで Google や Baidu のような強力な検索エンジンを呼び出す...

Docker で複数の MySQL コンテナを作成して実行する方法の例

1. mysql/mysql-server:latestイメージを使用してMySQLインスタンスを素...