Docker+Jenkinsによる自動デプロイの実現方法

Docker+Jenkinsによる自動デプロイの実現方法

Code Cloud を使用して Git コード ストレージ ウェアハウスを構築する

https://gitee.com/ログイン

  • Code Cloudを使用してプライベートGitリポジトリを作成する
  • ローカルの Springboot プロジェクトを Git リポジトリにアップロードします。

DockerベースのJenkins環境をインストールする

1. Dockerを使用してJenkinsをインストールする

docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

2. Jenkinsアドレス8080にアクセスする

注意: 初めて起動する場合、Jenkins が読み込まれるまでに約 3 ~ 10 分かかります。

3. Jenkinsのロックを解除する

docker exec -it 7f485bd95c3b /bin/bash jenkinsコンテナに入る cat /var/jenkins_home/secrets/initialAdminPassword 

待つのに約3〜10分かかります

新しいユーザーを作成する

Jenkins グローバルツール構成

Jenkinsコンテナに入り、$JAVA_HOMEをエコーし​​てJava環境のインストールアドレスを取得します。

JDK環境のインストール

Maven環境のインストール

Jenkinsに対応するMavenプラグインをインストールする

「システム管理」-「プラグインのインストール」を見つけ、「オプションのプラグイン」をクリックして、次のMavenプラグインバージョンを見つけます。

プラグイン名Maven 統合

JenkinsはSpringbootプロジェクトの自動デプロイメントを実装し、新しいリリースタスクを作成します

タスクのgitアカウントとパスワードを設定する

3. プロジェクトのパッケージ化

クリーンインストール

今すぐビルドをクリック

最初のビルドは、関連する依存jarパッケージをダウンロードする必要があるため、時間がかかる場合があります。

Jenkinsが正常に起動したらshllスクリプトを実行します。

#!/bin/bash
#サービス名 SERVER_NAME = springboot
# ソース jar パス。mvn パッケージ化が完了したら、ターゲット ディレクトリ内の jar パッケージ名を war パッケージとして選択することもできます。war パッケージは、Tomcat の webapps ディレクトリに移動して操作できます。ここでは、jar パッケージを使用し、java -jar コマンドを使用して JAR_NAME=springboot-0.0.1-SNAPSHOT を実行します。
# ソース jar パス #/usr/local/jenkins_home/workspace--->jenkins 作業ディレクトリ #デモ プロジェクト ディレクトリ #ターゲット パッケージで生成された jar パッケージ ディレクトリ JAR_PATH=/var/jenkins_home/workspace/springboot/target
# パッケージ化が完了したら、jar パッケージを jar パッケージが実行されるディレクトリ -->work_daemon に移動します。work_daemon ディレクトリは事前に作成しておく必要があります。JAR_WORK_PATH=/var/jenkins_home/workspace/springboot/target
 
echo "クエリプロセスID-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "プロセス ID を取得: $PID"
echo "プロセスを終了"
$PIDのID
する
-9 $id を殺す 
echo "$id を強制終了しました" 
終わり
echo "終了プロセスが完了しました"
 
#jar パッケージを実行ディレクトリにコピーします echo "jar パッケージを実行ディレクトリにコピーします: cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "完全なjarパッケージのコピー"
$JAR_WORK_PATH をコピーする
#ファイルの権限を変更する chmod 755 $JAR_NAME.jar
Nohub java -jar $JAR_NAME.jar

nohubを追加すると、バックグラウンドで実行されるか、nohubと

コンテナマップポート8081

1. コンテナを再起動する

systemctl dockerを再起動します

2. 実行されていないコンテナをクリアする

docker rm $(sudo docker ps -a -q)
docker run -p 8080:8080 -p 8081:8081 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

Docker+Jenkins による自動デプロイメントに関する記事はこれで終了です。Docker+Jenkins による自動デプロイメントの詳細については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Jenkins+Docker+Gitee+SpringBoot 自動デプロイメント
  • Docker、Nginx、Jenkins をベースにした自動フロントエンド デプロイメント
  • Docker+gitlab+jenkins は、ゼロから自動デプロイメントを構築します
  • docker+jenkins+node.js の自動デプロイメント環境をゼロから構築する方法
  • DockerはJenkinsを構築し、プロジェクトのパッケージ化とデプロイの手順を自動化します

<<:  JavaScriptは入力ボックスコンポーネントを実装します

>>:  MySQL マルチテーブルクエリの詳細な説明

推薦する

el-table カプセル化に基づくドラッグ可能な行と列、および選択列コンポーネントの実装

効果環境が必要ビュー要素UIドラッグアンドドロッププラグインSortable.js必要な構成プロパテ...

Vueは質問応答機能を実装する

1. リクエスト回答インターフェース2. ユーザーの回答が正しいかどうかを判断します。回答が正しい場...

React 関数コンポーネントのパフォーマンス最適化のアイデアの詳細な説明

最適化のアイデア最適化には主に 2 つの方向があります。再レンダリングの回数を減らします。 Reac...

Centos7 で yum を使用して Ceph 分散ストレージをインストールするチュートリアル

目次序文yumソース、epelソースを設定するCephソースの設定Cephとそのコンポーネントをイン...

Linux システムで grub.cfg ファイルの破損を修復する手順

目次1. grub.cfg ファイルの紹介1. grub.cfg ファイルの場所2. grub.cf...

JavaScriptにおけるこのポインティング問題の詳細な説明

序文JS の this ポインターは、初心者にとって常に頭痛の種でした。今日は、これが地面に落ちたと...

MySQLはconnect_by_isleaf MySQLメソッドまたはストアドプロシージャに似た機能を実装します

最近、特に異常なビジネス需要があり、テーブルがあります テーブル「デモ」を作成します( `id` i...

MySQL インデックスの詳細な説明

目次1. インデックスの基本1.1 はじめに1.2 インデックスの仕組み1.3 インデックスの種類1...

Vueはコードのハイライトを実現するためにモナコを使用しています

Vue 言語と要素コンポーネントを使用して、コード コンテンツの入力を必要とし、ハイライト表示が可能...

Unicodeの一般的な記号

Unicode は、世界中のすべてのテキストと記号に対応できる国際組織によって開発された文字エンコー...

JavaScript プロトタイプオブジェクトの this ポイント問題の詳細な説明

目次1. これは2. この点を修正する1. call() メソッド2. apply() メソッド要約...

URL 内の特殊記号の意味を知っていますか?

1.# # は Web ページ内の場所を表します。右側の文字はその位置の識別子です。たとえば、ht...

Centos8 の Django プロジェクトに nginx+uwsgi をデプロイするチュートリアル

1. 仮想環境virtualenvのインストール1. virtualenvをインストールするpip3...

VMware Workstation 14 Pro のインストールとアクティベーションのグラフィック チュートリアル

この記事では、VMware Workstation 14 Proのインストールとアクティベーションに...

いくつかのMySQL更新操作のケース分析

目次ケーススタディアカウント残高を更新する直接更新楽観的ロック方式ロックフリーソリューションキューイ...