プロジェクトの継続的インテグレーションと展開(2)

1.プロジェクトをDockerにデプロイします

1.1プロジェクトの展開プロセス

ステップ1:プロジェクトをサーバーにアップロードします;
ステップ2:Dockerイメージを作成します;
ステップ3:コンテナーを作成します;
ステップ4:コンテナーを開始します;

1.2プラグインを構成します

最初のステップ:spring-boot-maven-pluginパッケージングプラグインを構成します。

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

ステップ2:docker-maven-pluginプラグインを構成します。

<plugin>
   <groupId>com.spotify</groupId>
   <artifactId>docker-maven-plugin</artifactId>
   <version>1.0.0</version>
   <!--docker镜像相关的配置信息-->
   <configuration>
       <!--镜像名,这里用工程名-->
       <imageName>${project.artifactId}-${project.version}</imageName>
       <!--Dockerfile文件所在目录-->
       <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory>
       <!--TAG,这里用工程版本号-->
       <imageTags>
           <imageTag>${project.version}</imageTag>
       </imageTags>
       <imageName>${project.artifactId}:${project.version}</imageName>
       <!--构建镜像的配置信息-->
       <resources>
           <resource>
               <targetPath>/</targetPath>
               <directory>${project.build.directory}</directory>
               <include>${project.artifactId}-${project.version}.jar</include>
           </resource>
       </resources>
   </configuration>
</plugin>

1.3Dockerfileの記述

プロジェクトのsrc / main / resourcesディレクトリに新しいDockerfileファイルを作成します。ファイルの内容は次のとおりです。

FROM java:8
ENV ARTIFACTID xc-govern-center
ENV ARTIFACTVERSION 1.0-SNAPSHOT
ENV HOME_PATH /home
WORKDIR $HOME_PATH
ADD /$ARTIFACTID-$ARTIFACTVERSION.jar $HOME_PATH/$ARTIFACTID.jar
ENTRYPOINT ["java", "-jar", "xc-govern-center.jar"]

1.4ミラーを作成する

プロジェクトをサーバーにコピーした後、プロジェクトのルートディレクトリに入り、次のコマンドを実行できます。

mvn -f pom_docker.xml clean package -DskipTests docker:build

イメージが正常に作成されたら、テスト用にイメージを介してアプリケーションインスタンスをデプロイできます。

docker run --name 容器名称 -p 50101:50101 -idt 192.168.31.20:5000/镜像名称:镜像版本

注:jdk、maven、およびdockerツールもサーバーにインストールする必要があります。

2つ目は、継続的インテグレーションタスクを作成する

2.1ビルドタスクを作成する

Jenkinsホームページの左側にある[新しいタスク]をクリックし、入力ボックスにタスク名を入力します。
ここに画像の説明を挿入

2.2Gitを構成する

2.2.1Git資格情報の構成

Git資格情報は、リモートGitlabからコードを複製するために使用されます。

Jenkinsホームページの左側にある[資格情報]の下の[システム]をクリックします。
ここに画像の説明を挿入
左側の[資格情報の追加]をクリックし、gitlabウェアハウスのユーザー名とパスワードを入力して、[保存]ボタンをクリックします。
ここに画像の説明を挿入

2.2.2Gitリポジトリの構成

[マイタスク]をクリックして、タスク構成ページに入ります。ソースコード管理セクションでGitリポジトリを構成します。
ここに画像の説明を挿入

2.3Mavenビルド構成

  1. シェルスクリプトを使用して、コンテナを停止し、コンテナを削除し、イメージを削除します。
    ここに画像の説明を挿入
    コマンドは次のとおりです。
#!/bin/bash
result=$(docker ps | grep "192.168.31.20:5000/ts-govern-center")
if [[ "$result" != "" ]]
then
echo "stop ts-govern-center"
docker stop ts-govern-center
fi
result1=$(docker ps -a | grep "192.168.31.20:5000/ts-govern-center")
if [[ "$result1" != "" ]]
then
echo "rm ts-govern-center"
docker rm ts-govern-center
fi
result2=$(docker images | grep "192.168.31.20:5000/ts-govern-center")
if [[ "$result2" != "" ]]
then
echo "192.168.31.20:5000/ts-govern-center:1.0-SNAPSHOT"
docker rmi 192.168.31.20:5000/ts-govern-center:1.0-SNAPSHOT
fi
  1. Mavenビルドを実行します。
    ここに画像の説明を挿入
    コマンドは次のとおりです。
clean package -f ts-govern-center/pom_docker_registry.xml -DskipTests docker:build

3.イメージをプルし、コンテナーを作成して、コンテナーを開始します。
ここに画像の説明を挿入
コマンドは次のとおりです。

docker run --name xc-govern-center -p 50101:50101 -idt 192.168.31.20:5000/ts-govern-center:1.0-SNAPSHOT
docker logs -f ts-govern-center

2.4タスクを実行する

タスクページに移動し、[今すぐビルド]をクリックします。
ここに画像の説明を挿入
ビルドログ情報を表示します。
ここに画像の説明を挿入

2.5自動ビルド

2.5.1公開鍵を追加する

JenkinsはリモートでGitLabにアクセスしてソースコードを取得します。ここでは、GitLabで公開鍵を構成する必要があります。

ステップ1:jenkinsコンテナーに入り、公開鍵を生成します。

ssh-keygen -t rsa -C "[email protected]"
cat ~/.ssh/id_rsa.pub

手順2:公開鍵ファイルの内容をコピーします。

ステップ3:GitLabに入り、公開鍵を構成します。
ここに画像の説明を挿入

2.5.2Webhookを構成する

GitLabはwebhookを使用してjenkinsに通知し、コードプッシュがあると、jenkinsにビルドを通知します。

最初のステップ:gitlabプラグインをインストールします。
ここに画像の説明を挿入

ステップ2:Jenkins設定を入力して、jenkinsへの匿名アクセスを許可します。

「システム管理」で「システム構成」を選択し、システム構成ページに入ります。次に、gitlabパーツを見つけて、チェックボックスをオフにします。
ここに画像の説明を挿入
ステップ3:Jenkinsで通知アドレスを見つけ、そのアドレスをコピーします。
ここに画像の説明を挿入
ステップ4:管理者を使用してjenkinsにログインし、ローカルネットワークサービスを要求する権限を設定します。

ホームページで[GitLabの構成]を選択します。
ここに画像の説明を挿入
[設定]で[ネットワーク]を選択し、[送信リクエスト]を展開して、最初のチェックボックスをオンにします。
ここに画像の説明を挿入
手順5:フックアドレスを設定します。フックアドレスを介して、jenkinsはgitlabのプロジェクトにアクセスできます。

  1. 通常のユーザーとしてgitlabに再度ログインします。次に、プロジェクトのホームページに入ります。
  2. 「設定」で「Webhooks」を選択し、フックアドレスであるURLアドレスを入力します。
    ここに画像の説明を挿入

2.5.3テスト

テスト手順:

  1. プロジェクトコードを変更します。
  2. コードをgitlabに送信します。
  3. タスクがJenkinsで開始されているかどうかを確認します。

おすすめ

転載: blog.csdn.net/zhongliwen1981/article/details/105898252