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 マルチテーブルクエリの詳細な説明

推薦する

XHTMLタグには終了タグがある

<br />オリジナルリンク: http://www.dudo.org/article....

インタラクションデザインと心理学の驚くべきつながり18選

デザイナーは心理学を理解する必要があるデザイナーが知るべき心理学という本は非常に興味深いです。まず、...

React クラスコンポーネントのライフサイクルと実行順序

1. Reactコンポーネントを定義する2つの方法1. 関数コンポーネント。単純な関数コンポーネント...

Baidu デッドリンクファイルを作成する方法

Baidu によって定義されているデッドリンク形式には 2 種類あります。 1: XML形式のデッド...

Vueはメニューナビゲーションを実装するためにelement-uiを使用します

この記事では、Element-uiを使用してメニューナビゲーションを実装するVueの具体的なコードを...

WeChatミニプログラムをTencent Mapsに接続する2つの方法

最近、WeChat アプレットを作成しているのですが、いくつか問題が発生しました。インターネットでい...

ラムダ式の原則と例

ラムダ式ラムダ式 (クロージャとも呼ばれる) は、Java 8 のリリースを推進した最も重要な新機能...

HTML フォーム_PowerNode Java アカデミー

1. フォーム1. フォームの役割HTML フォームは、さまざまな種類のユーザー入力を受け取り、ユー...

.html、.htm、.shtml、.shtm の違いと関連性について簡単に説明します。

ご存知のとおり、私たちが毎日閲覧する Web ページ、Web サイト、または Web ページには独自...

HTML の色に関する参考資料

HTML では、色は 2 つの方法で表現されます。 1 つは、青の場合は blue のように色の名前...

一般的な MySQL ストレージ エンジンとパラメータ設定およびチューニングの紹介

MyISAM、MySQLでよく使われるストレージエンジン特性: 1. 同時実行性とロックレベル2. ...

CMDコマンドを使用してMySqlデータベースを操作する方法の詳細な説明

まず、mysqlサービスを開始および停止します ネットストップmysql ネットスタートMySQL ...

Json の長所と短所、使用方法の紹介

目次1. JSONとは何か1.1 配列リテラル1.2 オブジェクトリテラル1.3 混合リテラル1.4...

位置固定オフセット問題を解決する方法の詳細な説明

質問CSS 固定配置の position:fixed は非常に使いやすいです。ブラウザのビューポート...

MySQL 8.0.11 のインストールと設定方法のグラフィックチュートリアル MySQL 8.0 の新しいパスワード認証方法

この記事では、参考までにMySQL8.0.11のインストールと設定方法、およびMySQL8.0の新し...