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ビルド構成
- シェルスクリプトを使用して、コンテナを停止し、コンテナを削除し、イメージを削除します。
コマンドは次のとおりです。
#!/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
- 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のプロジェクトにアクセスできます。
- 通常のユーザーとしてgitlabに再度ログインします。次に、プロジェクトのホームページに入ります。
- 「設定」で「Webhooks」を選択し、フックアドレスであるURLアドレスを入力します。
2.5.3テスト
テスト手順:
- プロジェクトコードを変更します。
- コードをgitlabに送信します。
- タスクがJenkinsで開始されているかどうかを確認します。