序文
デプロイは反復的で退屈なものですが、CI/CD の継続的インテグレーションと継続的デリバリーについては誰もが聞いたことがあると思います。この記事は、プロジェクトの自動デプロイを迅速に実現するために、Gitlab CI/CD と Docker に基づいています。このソリューションは Git と緊密に統合でき、追加のツールを使用せずにコードの送信後に自動構築とデプロイメントを実現できます。
準備
まずは以下の 3 つのソフトウェアをインストールしてください。ソフトウェアのインストールについては、以下の参考リンクを参照して、順番にインストールすることをお勧めします。
- Docker:インストールのチュートリアル;
- Gitlab:インストールチュートリアル;
- GitlabRunner:インストール チュートリアル;
メインプロセス
私たちの主なプロセスは、Gitlab を通じてコードを管理し、Gitlab に付属する Gitlab CI/CD 関数を使用して GitlabRunner に登録してバインドすることです。バインドが成功した後は、コードが送信されるたびに、GitlabRunner がトリガーされて対応するスクリプト プログラムが実行され、自動デプロイメントが実現されます。
GitlabRunner の登録
- 自動的にデプロイする必要がある Gitlab ウェアハウスを開き、[設定] - [CI/CD] - [ランナー] を選択します。
- 以下の図に示すように、後で GitlabRunner を登録するときに使用される 2 つの最も重要な情報が表示されます。覚えておいてください。
- GitlabRunner 登録
コマンド ガイド:gitlab-runner register
登録、gitlab-runner list
登録済みランナーの表示、gitlab-runner unregister --all-runners
すべての登録のキャンセル。
まず、最初にランナーを登録し、ランナーに (何でも) 名前を付けます。ここでは「こんにちは、スプリング ブーツ!」と名前を付けます。次に、ランナーのタグを入力します。タグを使用して、ランナーごとにプロジェクトのさまざまな段階を区別できます。実行するには、ここに入力します: maven; 最後に、実行するスクリプトを入力します。ここではシェルを使用します。
登録が成功したら、Gitlab ページを更新してみましょう。登録が成功したことがわかります。
制作脚本
コードを送信した後、シェル スクリプトを使用してビルドとデプロイメントを制御するにはどうすればよいですか? Gitlab から提供されたテンプレートでは、.gitlab-ci.yml
ウェアハウスのルート ディレクトリに次の名前のファイルを作成します。ここで SpringBoot プロジェクトを実行するので、内容は次のとおりです。
stages:
- build
- deploy_test
# - clean
# 打包镜像
build:
stage: build
only:
- master
script:
- $MAVEN_HOME/bin/mvn clean package -U '-Dmaven.test.skip=true'
- cp target/GitlabRunnerTest-0.0.1-SNAPSHOT.jar docker/
- cd docker
- docker build -t test/gitlabrunner:v1.0.0 .
tags:
- maven
# 部署测试服务器
deploy_test:
stage: deploy_test
only:
- master
script:
- cd docker
- docker-compose down
- docker-compose up -d
tags:
- maven
#清理虚悬镜像
#clean:
# stage: clean
# only:
# - master
# script:
# - docker rmi $(docker images -q -f dangling=true)
# tags:
# - maven
次に、ルート ディレクトリに Docker フォルダーを作成し、Dockerfile を作成します。
FROM openjdk:11
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
docker-compose.yml を作成する
version: '3.1'
services:
education-course:
container_name: test-gitlabrunner
restart: always
image: test/gitlabrunner:v1.0.0
network_mode: "host"
command: java -jar -Xms1024m -Xmx1024m -Duser.timezone=GMT+08 GitlabRunnerTest-0.0.1-SNAPSHOT.jar --spring.profiles.active=test
全体的なプロジェクトのディレクトリ構造は次のとおりです。
確認
完了したら、コードをアップロードし、CI/CD パイプラインで実行が成功したかどうかを確認できます。
ご覧のとおり、ビルドは成功しました。アクセスしてみましょう。
おめでとうございます。正常にデプロイされました。コード内の GIt 送信を変更して、自動デプロイメントの効果を確認してみることができます。