ホームページ  >  記事  >  Java  >  Docker を使用して Spring Boot アプリケーションをコンテナ化し、継続的統合と継続的デプロイメントを実現します

Docker を使用して Spring Boot アプリケーションをコンテナ化し、継続的統合と継続的デプロイメントを実現します

WBOY
WBOYオリジナル
2023-10-20 11:30:24997ブラウズ

利用Docker容器化Spring Boot应用,实现持续集成和持续部署

Docker を使用して Spring Boot アプリケーションをコンテナ化し、継続的統合と継続的デプロイを実現します。

Docker は、アプリケーションとその依存リソースを統合できるオープンソースのコンテナ化プラットフォームです。別のコンテナーを作成し、イメージをデプロイして実行します。最新のアプリケーションを構築および展開するための、軽量、高速、ポータブルなソリューションを提供します。

Spring Boot は、Java アプリケーションを構築するためのシンプルかつスケーラブルな方法を提供する迅速な開発フレームワークです。 Docker と Spring Boot を組み合わせることで、アプリケーションの迅速なデプロイ、スケーリング、管理という目標を達成できます。

この記事では、Docker を使用して Spring Boot アプリケーションをコンテナ化し、継続的インテグレーションと継続的デプロイのプロセスを実装する方法を紹介し、対応するコード例を示します。

  1. 準備
    始める前に、Docker と Java 開発環境がインストールされていること、および基本的な Spring Boot アプリケーション開発の経験があることを確認してください。
  2. Spring Boot アプリケーションの作成
    まず、単純な Spring Boot アプリケーションを作成する必要があります。 Spring Initializr (https://start.spring.io/) を使用して、新しい Spring Boot プロジェクトをすばやく作成することも、既存の Spring Boot プロジェクトを使用することもできます。

ここでは、以下に示すような単純な Hello World アプリケーションを作成します。

@Controller
public class HelloWorldController {
  
    @GetMapping("/")
    public String hello(Model model) {
        model.addAttribute("message", "Hello, Docker!");
        return "hello";
    }
  
    public static void main(String[] args) {
        SpringApplication.run(HelloWorldController.class, args);
    }
}

このコードは、ルート パスにアクセスすると、「Hello, Docker」を返す基本的な Spring MVC コントローラーを作成します。 !" メッセージ。

  1. Docker イメージの構築
    次に、Docker でデプロイできるイメージを構築する必要があります。これを行うには、イメージのビルド ルールを定義する Dockerfile を作成する必要があります。

プロジェクトのルート ディレクトリに Dockerfile という名前のファイルを作成し、次の内容を追加します。

# 使用一个基础的Java 8镜像
FROM openjdk:8-jdk-alpine

# 将应用的jar包添加到容器中
COPY target/demo-0.0.1-SNAPSHOT.jar /app.jar

# 暴露8080端口
EXPOSE 8080

# 运行jar包
ENTRYPOINT ["java","-jar","/app.jar"]

上記の Dockerfile は、Alpine Linux に基づく Java 8 イメージをベース イメージとして使用します。 。次に、構築された jar パッケージをコンテナーにコピーし、ENTRYPOINT 命令を通じてアプリケーションを実行します。

イメージをビルドするコマンドは次のとおりです:

$ docker build -t spring-boot-demo .

イメージがビルドされた後、次のコマンドを使用してビルドが成功したかどうかを確認できます:

$ docker images

名前が表示されるはずです。 spring-boot-demo のミラーです。

  1. Docker コンテナの実行
    イメージを取得したら、イメージに基づいて Docker コンテナを作成して実行できます。

次のコマンドを実行してコンテナを開始します:

$ docker run -d -p 8080:8080 spring-boot-demo

このうち -d パラメータはコンテナをバックグラウンドで実行することを意味し、-p パラメータは 8080 ポートをマッピングすることを意味しますホストのポートをコンテナの 8080 ポートに接続します。

コンテナーが正常に起動したかどうかを確認するには、次のコマンドを使用してコンテナーの実行ステータスを確認できます。

$ docker ps

spring-boot-demo という名前のコンテナーがrunning は、コンテナが正常に起動されたことを意味します。

  1. 更新の展開
    アプリケーションに新しい更新がある場合、次の手順でアプリケーションの更新と展開を完了できます。

まず、アプリケーション コードをローカルで更新し、イメージを再構築します:

$ docker build -t spring-boot-demo .

次に、古いコンテナを停止して削除します:

$ docker stop [CONTAINER_ID]
$ docker rm [CONTAINER_ID]

その後、新しいコンテナを実行します。コンテナをもう一度:

$ docker run -d -p 8080:8080 spring-boot-demo
  1. 継続的インテグレーションと継続的デプロイメント
    上記の手順を手動で実行してアプリケーションを構築してデプロイすることもできますが、大規模で頻繁な更新の場合、これは明らかに非効率でエラーです。 -傾向がある。したがって、CI/CD ツール (Jenkins、GitLab CI など) を使用して、自動化された継続的インテグレーションと継続的デプロイを実現できます。

次は、Jenkins を使用した簡単な例です。

  • Jenkins のインストールと構成
    Jenkins の公式ドキュメントに従い、Jenkins をインストールして構成し、Jenkins が適切であることを確認します。ソースコードにアクセスして環境を構築できます。
  • Jenkins タスクの作成
    Jenkins のパイプライン機能を使用して新しいタスクを作成し、ソース コード ウェアハウス アドレス、ビルド スクリプト、トリガー メソッドなどの関連パラメーターを構成します。
  • ビルド プロセスの構成
    Jenkins ビルド スクリプトに、次のコンテンツを追加します。
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'mvn clean package -DskipTests'
            }
        }
        stage('Build Docker Image') {
            steps {
                sh 'docker build -t spring-boot-demo .'
            }
        }
        stage('Deploy') {
            steps {
                sh 'docker stop spring-boot-demo'
                sh 'docker rm spring-boot-demo'
                sh 'docker run -d -p 8080:8080 --name spring-boot-demo spring-boot-demo'
            }
        }
    }
}

このスクリプトは、アプリケーションのビルド プロセスと更新のデプロイ プロセスを指定します。実際のニーズに応じて変更します。

  • トリガー ビルド
    ビルド パラメーターとトリガー方法を構成した後、保存してビルドを手動でトリガーします。Jenkins は、構成されたプロセスに従ってアプリケーションを自動的にビルドし、デプロイします。

上記の手順により、Docker を使用して Spring Boot アプリケーションをコンテナ化し、継続的インテグレーションと継続的デプロイのプロセスを実現できます。このようにして、アプリケーションの開発、展開、管理を大幅に簡素化し、開発効率と展開の柔軟性を向上させることができます。

この記事が、Docker コンテナー化された Spring Boot アプリケーションの継続的インテグレーションと継続的デプロイメントを理解して実践するための参考になれば幸いです。練習の成功を祈っています!

以上がDocker を使用して Spring Boot アプリケーションをコンテナ化し、継続的統合と継続的デプロイメントを実現しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。