【DockerがテストデプロイCI/CDを実装----フリースタイルCI運用【中間アーキテクチャ】(4)】

10. フリースタイルCI運用(中間アーキテクチャ)

中間アーキテクチャ図

ここに画像の説明を挿入します

Webプロジェクトの作成

        Web プロジェクトを作成するには、 spring bootプロジェクト名 などの単純なプロジェクトを使用しますhellojks spring web依存関係をインポートするだけです。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    
    
    @GetMapping("/hello")
    public String helloHandle(){
    
    
        return "Hello Jenkins!!!!";
    }
}

ここに画像の説明を挿入します

テストを開始するとアクセスが成功します

ここに画像の説明を挿入します

アイデアはプロジェクトをリモート ウェアハウスに送信します

gitlab でリモート ウェアハウスを作成して、以前に作成した Web プロジェクトを管理する

ここに画像の説明を挿入します

ここに画像の説明を挿入します

アイデアでローカル ライブラリを作成する

ここに画像の説明を挿入します

        リモート ウェアハウス ページの Git グローバル セットアップのコマンドに従って、プロジェクトTerminal 窗口にグローバル ユーザーを作成します。

ここに画像の説明を挿入します

コードをローカル ライブラリに送信する

プロジェクトを右クリックし、 を選択しますGit -> Commit Directory

ここに画像の説明を挿入します

Commit to masterウィンドウが        ポップアップ表示されます。コミットするファイルを選択し、テキスト領域にコミット ログを入力します。それからCommit

ここに画像の説明を挿入します

その後、警告が表示されますが、送信には影響せず、再Commit Anywayインストールするだけです。

ここに画像の説明を挿入します

コードをリモート ライブラリに送信する

まず、リモート倉庫から倉庫のアドレスを取得します。Clone with HTTPコピーするアドレスを選択します。

ここに画像の説明を挿入します

次に、プロジェクトを右クリックして、 を選択しますGit -> Push

ここに画像の説明を挿入します

新しいウィンドウ をクリックしDefine remote、コピーしたリモート ウェアハウスのアドレスをポップアップ ウィンドウに貼り付けます。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

GitLab プッシュ後、ログイン ウィンドウが表示され
、ユーザー名を入力しますroot。パスワードは以前のものです。GitLab修改过的密码

ここに画像の説明を挿入します

プッシュが成功すると、アイデアの右下隅に成功のプロンプトが表示されます。

ここに画像の説明を挿入します

この時点で、GitLab ページを更新すると、プッシュされたプロジェクトが表示されます。
ここに画像の説明を挿入します

ジェンキンスからコードをプルします

新しいタスクを作成する

ここに画像の説明を挿入します

jenkins は gitlab を統合します

ここに画像の説明を挿入します

一般向けGitLab 仓库,直接指定仓库地址,应用保存即可しかし、のために private 仓库,则需要指定访问 GitLab 的用户名与密码「追加」ボタンをクリックして、下のウィンドウを開きます。

ここに画像の説明を挿入します

        入力後用户名与密码「追加」で前のページに戻ると、Credentials ドロップダウンボックスで新しく追加したユーザー情報を見つけて選択できます。

ここに画像の説明を挿入します

今すぐ構築

ここに画像の説明を挿入します

コンソール出力を表示する

ここに画像の説明を挿入します

ここに画像の説明を挿入します

        上記は 2 番目のビルドですが、最初のビルドでは、 Jenkins がそのコンテナーをプロジェクトのローカル ウェアハウス (データ ボリューム ディレクトリ) としてJenkins执行 git init /var/jenkins_home/workspace/my_hellojks 命令使用していることがわかります。/var/jenkins_home/workspace/my_hellojks 目录jenkins データ ボリュームを入力して、プロジェクトがすでに存在していることを確認します。

ここに画像の説明を挿入します
ここに画像の説明を挿入します

プロジェクトをjarパッケージにする

        Jenkins では、これを構成し、ローカルで呼び出しmaven 的 mvn 命令、プルしたプロジェクトを Jar パッケージに入力できます。

Jenkinsのconfigure mvnコマンド

ここに画像の説明を挿入します

        「構成」をクリックすると、構成ページが開きます。クリックすると Build Steps次の場所にジャンプします。

ここに画像の説明を挿入します

最上位の Maven ゴールを呼び出し、以前に構成した Maven を使用してパッケージ化タスクを完了します。

「clean package -DskipTests」は、Java プロジェクトをビルドしてテストの実行をスキップする Maven コマンドです。

ここに画像の説明を挿入します

再構築する

ここに画像の説明を挿入します

ビルド成功

ここに画像の説明を挿入します

        ビルドが成功したら、jenkins データ ボリューム ディレクトリに入る/var/jenkins_home/workspace/my_hellojks と、ターゲット ディレクトリ () が追加されたことがわかります"target" 目录是 Maven 构建工具生成的默认目录,用于存放构建过程中生成的各种输出文件。ターゲット ディレクトリを開くと、出力された jar パッケージが表示されます。
ここに画像の説明を挿入します

コード品質検査

        Jenkins の my_hellojks プロジェクト内のSonarScanner コードに品質チェックを適用します。したがって、プロジェクト内で設定する必要があります SonarScanner

ここに画像の説明を挿入します

ここに画像の説明を挿入します

        ビルドが立即构建成功したら、SonarQube ページを更新すると、新しいプロジェクトが追加されたことがわかります。

ここに画像の説明を挿入します

正常に構築されました。ページを表示します
ここに画像の説明を挿入します

ここに画像の説明を挿入します

Jenkins がコードをターゲット サーバーにプッシュします。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

        返されたタスクのホームページで、即時ビルドを再度実行します。ログを見ると、対象サーバーに接続してファイルを1つプッシュしたログが確認できます。

ここに画像の説明を挿入します

ターゲット サーバーを確認すると、jar パッケージがプッシュオーバーされていることがわかります。

ここに画像の説明を挿入します

イメージをビルドしてコンテナを起動する

        Jenkins でターゲット サーバーで実行される関連コマンドを構成すると、Jenkins が jar パッケージをターゲット サーバーにプッシュした後、構成されたコマンドがすぐに自動的に実行され、jar パッケージがミラー イメージに構築され、対応するコンテナーが起動されます。プロジェクトを実行し始めます。

Dockerfile の定義

        イメージを構築するには、イメージを定義する必要がありますDockerfileDirectoryたとえば、Idea プロジェクトに新しいプロジェクトを作成しdocker、その中に新しいプロジェクトを作成しますDockerfile

        Idea ターミナルの実行は、mvn clean packageプロジェクトをクリーンアップしてビルド操作を実行するために使用される Maven コマンドです。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

Dockerfile ファイルの内容

FROM openjdk:8u102
LABEL auth="shengxia" email="[email protected]"
COPY hellojenkins-0.0.1-SNAPSHOT.jar /jenkins/hellojenkins.jar # 复制到目标服务器所在的目录
WORKDIR /jenkins
ENTRYPOINT ["java", "-jar", "hellojenkins.jar"]

compose.ymlを定義する

compose.ymlイメージの構築とコンテナの起動のために、        idea の新しいディレクトリに新しいものを作成します。

ここに画像の説明を挿入します

services:
  hellojenkins:
    build: ./
    image: hellojenkins
    container_name: myhellojenkins
    ports:
      - 8080:8080

GitLab にプッシュする

ここに画像の説明を挿入します

ビルド後の操作を再構成する

ここに画像の説明を挿入します

再構築する

        Jenkins の返されたタスクのホームページで、即時ビルドを再度実行します。ビルドが成功したら、ターゲット サーバーのディレクトリをチェックして/jenkins docker 目录及其下的两个 docker 文件已经存在了jar パッケージもコピーされていることを確認します。

ここに画像の説明を挿入します

hellojenkins 镜像ターゲット サーバー上の Docker イメージでは、Docker イメージが生成されている        ことがわかります。

ここに画像の説明を挿入します

ターゲットサーバーではdocker ps、コンテナが起動していることがわかります。

ここに画像の説明を挿入します

ブラウザでターゲット サーバー上のアプリケーションにアクセスすると、すでにアクセス可能になっています。

ここに画像の説明を挿入します

        アイデア内のコードを変更して gitlab にプッシュし、[ビルド] をクリックすると、配信が完了します。

コードを変更する

package com.example.hellojenkins.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    
    
    @GetMapping("/hello")
    public String helloHandle(){
    
    
        return "Hello Jenkins. This is the second modified!!!!";
    }
}

今すぐ構築
ここに画像の説明を挿入します

チェック
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_52589631/article/details/132090046