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

推薦する

MySQL 8.0.12 のインストールと設定のグラフィックチュートリアル

MySQL 8.0.12 のダウンロードとインストールのチュートリアルを録画し、全員と共有しました。...

Linux で Tomcat を実行するいくつかの方法の説明

Linux での Tomcat の起動とシャットダウンLinux システムでは、コマンド操作を使用し...

モバイル署名機能を実装するJavaScript

この記事では、モバイル署名機能を実装するためのJavaScriptの具体的なコードを参考までに共有し...

Docker プライベートリポジトリの管理とローカルリポジトリ内のイメージの削除

1: Dockerプライベートウェアハウスのインストール1. イメージリポジトリからイメージをダウン...

Dockerコンテナ内のホストのホスト名が取得できない問題の解決方法

Node.js環境でテストが通っています。他の言語でも同様です。環境変数を取得する方法を使うだけです...

一般的な docker コマンドの概要 (推奨)

1. 要約:一般的に、次のカテゴリに分類できます。 Docker 環境情報 — docker [i...

Yahooのフロントエンド最適化に関する35のルールについての簡単な説明

概要: 仕事でも面接でも、Web フロントエンドのパフォーマンスを最適化することは非常に重要です。で...

TomcatはXMLを解析し、リフレクションを通じてオブジェクトを作成します。

次のサンプル コードでは、Tomcat が XML を解析し、リフレクションを通じてオブジェクトを作...

Vue3.0 手書き拡大鏡効果

達成される効果は、固定ズームが 2 倍になり、マウスが左側の画像領域に入るとマスク レイヤーが表示さ...

MacにMySQLをインストールするときに初期パスワードを忘れた場合の対処方法

パスワードを忘れると困ります。Mac に MySQL をインストールするための初期パスワードを忘れて...

vue3 コンポーネントでの v-model の使用と詳細な説明

目次v-model 入力で双方向バインディングデータを使用するコンポーネント内の v-model他の...

Mysql5.7 のルートパスワードを忘れた場合の対処法 (シンプルで効果的な方法)

前回の記事では、MySQL 5.7でルートパスワードを忘れた場合と、MySQL 5.7でルートパスワ...

Linux でファイアウォールがオフになっているかどうかを確認する方法

1. サービス方法ファイアウォールのステータスを確認します。 [root@centos6 ~]# サ...

VMware Workstation に Windows Server 2019 をインストールする (グラフィック チュートリアル)

キーの入力を求められた場合は、[キーがありません]を選択します。デスクトップエクスペリエンスを選択す...

Vuex はシンプルなショッピングカート機能を実装します

この記事の例では、ショッピングカート機能を実装するためのvuexの具体的なコードを参考までに共有して...