Jenkins は Docker イメージを構築し、Harbor ウェアハウスにプッシュします

Jenkins は Docker イメージを構築し、Harbor ウェアハウスにプッシュします

Spring Boot プロジェクトでは、Jenkins を使用して Docker イメージを構築し、それを harbor リポジトリにプッシュし、コンテナーを起動してから、ローカルで実行中のコンテナーにイメージをプルします。

Dockerファイル

場所: ルートディレクトリ内、src と同じレベル

java:8より
 # 著者: MAINTAINER zhaoyc
ボリューム /tmp
#ARG JAR_FILE
#jarパッケージをコンテナに追加し、名前をapp.jarに変更します
ターゲット/*.jar app.jarを追加します
bash -c 'touch /app.jar' を実行します。
ENV TZ=アジア/上海
#RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
エクスポーズ81
#CMD ["-jar", "/app.jar"] "nohup" "&"
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

ドキュメント

Mavenのバージョン番号を1.4.2に指定するには、他のバージョンはテストされていないため、メインクラスが見つかりません。

<プラグイン>
 <!-- mavn jar パッケージ起動プラグイン -->
	<プラグイン>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-maven-plugin</artifactId>
		<バージョン>1.4.2.RELEASE</バージョン>
	</プラグイン>
</プラグイン>

Jenkins の設定

システム設定構成Docker – Dockerプラグインをインストールする必要があります

ここに画像の説明を挿入

新しいMavenプロジェクト構成パラメータビルドを作成する

ここに画像の説明を挿入

プロジェクトのgitリポジトリ構成

ここに画像の説明を挿入

mvn build ビルド構成

ここに画像の説明を挿入

Dockerイメージをビルドし、リポジトリ構成にプッシュする

ここに画像の説明を挿入

リポジトリにプッシュした後スクリプトを実行する

#!/bin/bash
#IMAGE=${モジュールファイル名}
#TAG=${タグ}
画像=$1
タグ=$2
PULL_IMAGE=192.168.1.100:81/プロジェクト/${イメージ}:${タグ}
# 減算を計算し、小数点の前に 0 を付けて出力します (例: 0.3-0.1=0.2)
CURRENT_IAMGE=`echo "$TAG - 0.1" | bc | awk '{printf "%.1f", $0}'`

echo '=================Harbor 倉庫へのログインを開始します================='
docker ログイン http://192.168.1.100:81 -u admin -p Harbor12345

[ $? -eq 0 ]の場合;
    echo '==================ログイン成功=================='
それ以外
    echo '==================ログインに失敗しました=================='
    戻り値 1
フィ

echo '=================イメージの取得を開始します================='
docker pull ${PULL_IMAGE}
echo '=================イメージのプル終了================='

# コンテナ操作の更新 echo '=================イメージの実行を停止================='
docker stop ${IMAGE}_${CURRENT_IAMGE}
echo "10秒待ってください"
睡眠10

echo '=================ミラーの開始を開始します================='
#if [ ${IMAGE} == "java-demo" ]; then
# docker run -d --name ${IMAGE}_${TAG} -p 9001:9001 ${PULL_IMAGE}
#elif [ ${IMAGE} == "spring-cloud-eureka-client-demo" ]; 次に
# docker run -d --name ${IMAGE}_${TAG} -p 9012:9012 ${PULL_IMAGE}
#fi
docker run -d --name ${IMAGE}_${TAG} -p 9001:9001 ${PULL_IMAGE}
[ $? -eq 0 ]の場合;
    echo '================ミラーリングが正常に開始されました================='
それ以外
    echo '================ミラーの起動に失敗しました================'
    戻り値 1
フィ

Jenkins が Docker イメージをビルドして Harbor リポジトリにプッシュする方法についての記事はこれで終わりです。Jenkins が Docker イメージをビルドする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker buildx を使用してマルチプラットフォーム イメージをビルドし、プライベート リポジトリにプッシュする方法
  • Dockerを使用してクローンリポジトリを使用してGitイメージを構築する
  • Docker用国産イメージウェアハウスの使い方
  • docker-maven-pluginはイメージをパッケージ化し、プライベートウェアハウスにアップロードします。
  • Dockerイメージリポジトリの使い方
  • Docker プライベート イメージ リポジトリの Alibaba Cloud 展開手順
  • Dockerコンテナ練習用イメージウェアハウス

<<:  製品を選択した後、右下隅に√記号を表示するための純粋なCSS

>>:  JavaScript の便利な配列トリック 12 選

推薦する

JavaScript の基礎: エラーキャプチャメカニズム

目次序文エラーオブジェクト投げる試して…捕まえて…最後に最終ルールトライ/キャッチパフォーマンスウィ...

Docker 基本チュートリアル: Dockerfile 構文の詳細な説明

序文Dockerfile は Docker プログラムによって解釈されるスクリプトです。Docker...

Flexレイアウトとスケーリング計算についての簡単な説明

1. Flexレイアウトの紹介Flex は Flexible Box の略で、「柔軟なレイアウト」を...

Bash スクリプトを使用して Linux のメモリ使用量を監視する方法

序文Linux システムのパフォーマンスを監視するために使用できるオープンソースの監視ツールが市場に...

Linuxシステムの操作レベルの詳細な紹介

目次1. Linuxシステムの操作レベルの概要2. 実行レベルを確認する3. 現在のシステムの動作レ...

Vue で $attrs と $listeners を使用するチュートリアル

目次導入例要約する導入$属性すべての親コンポーネントのプロパティを継承します (props を通じて...

MySQL の計画タスクとイベント スケジュール例の分析

この記事では、例を使用して、MySQL の計画されたタスクとイベントのスケジュールについて説明します...

CentOS サーバーのセキュリティ構成戦略

最近、ブルートフォース攻撃によるサーバのクラッキングが頻発しています。侵入行為を大まかに分析し、よく...

CSS で TikTok テキスト揺れエフェクトを実装する例

日々の開発において、フロントエンドの学生はアニメーションやデザインについてよく議論します。デザイナー...

Linux 上でプロジェクトをリリースするために Tomcat を展開するプロセスにおけるさまざまな問題と解決策

プロジェクトをプロジェクトサイトのテスト環境にデプロイするJDK1.8トムキャット8.5 Maven...

システム CD をマウントして yum ウェアハウスを構築する VMware 15.5 バージョンのグラフィック チュートリアル

1. CentOS 7 仮想マシンを開きます。 2. 仮想マシンにログインし、リストにないユーザー名...

Vue プロジェクトはファイルダウンロードの進行状況バー機能を実装します

日常業務でファイルをダウンロードする一般的な方法は 2 つあります。 1 つ目は、サーバーのファイル...

JavaScriptを使用してSMS認証コード間隔を送信する機能を実装する

多くのアプリやウェブサイトでは、ログインやアカウント登録の際にSMS認証コード1を送信する場所があり...

フロントエンド開発者のための HTML 入門

1 HTML入門1.1 初めてのコード体験、最初のウェブページの作成XML/HTML コードコンテン...

Centos7でmysql5.7.19のデータ保存場所を移動する方法

シナリオ: データ量が増加すると、MySQL が配置されているディスクがいっぱいになり、より大きなス...