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

推薦する

JS はシンプルなカレンダー効果を実装します

この記事では、シンプルなカレンダー効果を実現するためのJSの具体的なコードを参考までに紹介します。具...

Nginx の add_header ディレクティブに注意する必要があるのはなぜですか?

序文ご存知のとおり、nginx 構成ファイルは add_header ディレクティブを使用して応答ヘ...

win10 での mysql5.7.21 の詳細なインストール手順

この記事では、MySQL 5.7.21のインストールとインストール中に発生した問題を参考までに紹介し...

Centos8 でローカル Web サーバーを構築するための実装手順

1 概要システム Centos8 では、httpd を使用してローカル Web サーバーを構築します...

純粋な CSS で中空効果を実現するためのサンプルコード

私は最近、空洞化効果について研究しました。背景クリップ: テキスト背景はテキストの前景色にクリップさ...

Apache Webサーバーのインストールと設定方法

信頼性が高く、人気があり、簡単に構成できる Web サーバーである Apache で独自の Web ...

Mysql で期間の交差をクエリする方法

MySQLクエリ期間の交差使用シナリオデータベース テーブルには、starttime と endti...

Vue.jsでタブ切り替えと色変更操作を実装する解説

この機能を実装するにあたり、本家ブロガーさんから拝借した方法では色の切り替えが実現できず、長い間考え...

PHP環境構築におけるDockerの柔軟な実装

Docker を使用して、柔軟なオンライン PHP 環境を構築します。場合によっては、他の人がすでに...

CSS スタイルを HTML 外部スタイルシートにインポートする方法

リンクインスタイルとは、すべてのスタイルを 1 つ以上の外部スタイルシート ファイルに配置することで...

Nginx サーバーで Web クローラーをブロックおよび禁止する方法

通常、すべての Web サイトは、多くの非検索エンジン クローラーに遭遇します。これらのクローラーの...

MySQLソースコマンドの使い方の紹介

目次ネット上の質問から生まれた思考MySQL ソースコマンドネット上の質問から生まれた思考今日仕事中...

MySQL 5.7.17 のインストールと設定方法のグラフィックチュートリアル (Win7 の場合)

Windows 7 で MySQL 5.7.17 をインストールする方法についてのグラフィック チ...

MySQLの文字セットを変更する方法

1. MySQLの文字セットを確認する '%char%' のような変数を表示します。...