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

推薦する

JavaScript クラス配列の詳細な理解

js 配列はどこでも使用されているため、おそらく誰もがよく知っているでしょうが、配列クラス (疑似配...

Linuxディレクトリ構造の詳細な紹介

Linuxを学び始めるときは、まずLinuxの標準ディレクトリ構造を理解する必要があります。 / r...

dockerでifconfigが利用できない問題を解決する

最近、docker を学習していたときに、docker コンテナ内のネットワーク状態を照会するために...

フレックスレイアウトの改行スペースでの align-content の使用

1. この記事で実装した効果図は以下のとおりです。レイアウトの右側に Flex レイアウトを使用し、...

Dockerコンテナ内でホストDocker操作を呼び出して実行する

まず、この投稿は Docker 初心者向けです。もちろん、ベテランであれば記事中の分割線以降の操作方...

読み取り専用と無効の微妙な違いの詳細な説明

「読み取り専用」と「無効」はどちらも、ユーザーがフォーム フィールドの内容を変更できないようにします...

JavaScriptクロージャの原理と機能の詳細な説明

目次導入クロージャの使用カレー作りパブリック変数の実装キャッシュカプセル化(属性のプライベート化)閉...

Linux ディスクのマウント、パーティション分割、容量拡張操作を実装する方法

基本概念操作の前に、まずいくつかの基本的な概念を理解する必要がありますディスクLinux システムで...

mysql 結合クエリ (左結合、右結合、内部結合)

1. MySQLの一般的な接続INNER JOIN (内部結合、または等価結合): 2 つのテーブ...

一般的な nginx コマンドをシェル スクリプトに組み込む方法の詳細な説明

1. nginxシェルスクリプトを保存するフォルダを作成する /usr/local/タスク/ngin...

初心者がHTMLタグを学ぶ(2)

関連記事:初心者が学ぶ HTML タグ (1)初心者は、いくつかの HTML タグを理解することで ...

Mysqlは日付範囲の抽出方法を指定します

データベースを操作する過程では、いくつかの指標を日付別にまとめたり、一定期間内の合計金額をカウントし...

Vueはシンプルな計算機能を実装します

この記事では、参考までに、Vue の具体的なコードで簡単な計算機を実装する方法を紹介します。具体的な...

MySQL Limitパフォーマンス最適化とページングデータパフォーマンス最適化の詳細な説明

MySQL Limit はセグメント内のデータベース データをクエリでき、主にページングで使用されま...

Dockerの急速な拡張の高度な方法

1. コマンド方式作成された Swarm クラスターで nginx サービスを実行し、--repli...