Docker と Spring Boot を使用したコンテナ化されたクラウド ネイティブ アプリケーションの構築
クラウド ネイティブ アプリケーションは、コンテナ化とマイクロサービス アーキテクチャを通じて構築されたアプリケーションであり、高いスケーラビリティ、高い柔軟性、高い信頼性を備えています。特徴。現在最も人気のあるコンテナ テクノロジーである Docker は、クラウド ネイティブ アプリケーションの迅速な導入と運用の実現に役立ちます。 Spring Boot は軽量の Java 開発フレームワークであり、マイクロサービスをより迅速かつ便利に構築できるようになります。
この記事では、Docker と Spring Boot を使用してコンテナ化されたクラウドネイティブ アプリケーションを構築する方法を紹介し、具体的なコード例を示します。
まず、Docker と Java 開発環境をインストールする必要があります。 Docker は公式 Web サイトからダウンロードしてプロンプトに従ってインストールできます。一方、Java 開発環境は Oracle 公式 Web サイトからダウンロードしてインストールできます。
次に、新しい Spring Boot プロジェクトを作成します。 IntelliJ IDEA や Eclipse などの IDE ツールを使用することも、Spring Initializr を使用して新しいプロジェクトをすばやく作成することもできます。プロジェクトを作成するときは、依存関係として Web と Docker を選択し、関連するプロジェクト情報を設定する必要があります。
Spring Boot プロジェクトを作成したら、コードの記述を開始できます。まず、プロジェクトのメインクラスにアノテーション @EnableDocker を追加して、Docker サポートを有効にします。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; @SpringBootApplication @EnableDiscoveryClient @EnableDocker public class CloudNativeApplication { public static void main(String[] args) { SpringApplication.run(CloudNativeApplication.class, args); } @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } }
上記のコードでは、@EnableDocker アノテーションを使用して Docker サポートを有効にし、HTTP リクエストを送信するための RestTemplate Bean を定義します。
これで、単純な RESTful インターフェイスを作成できます。プロジェクトのコントローラー クラスに、アノテーション @RestController を追加し、単純な GET リクエスト インターフェイスを定義します。
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @RestController @RequestMapping("/api") public class ApiController { @Autowired private RestTemplate restTemplate; @GetMapping("/hello") public String hello() { String response = restTemplate.getForObject("http://other-service/api/greeting", String.class); return "Hello from Cloud Native App. Response from other-service: " + response; } }
上記のコードでは、Spring の依存関係注入を使用して RestTemplate のインスタンスを注入し、それを GET リクエスト インターフェイスで使用して HTTP リクエストを送信します。
次に、Docker イメージを構築するために Dockerfile を作成する必要があります。プロジェクトのルート ディレクトリに Dockerfile という名前のファイルを作成し、次の内容を追加します。
FROM openjdk:8 COPY target/cloud-native-app.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"]
上記の Dockerfile では、ベース イメージとして openjdk:8 を使用し、ビルドされた jar ファイルをイメージの中央にコピーしました。次に、ENTRYPOINT ディレクティブを使用して、Docker コンテナーの起動時に実行するコマンドを指定します。
最後に、次のコマンドを使用して Docker イメージを構築し、コンテナーを実行できます。
docker build -t cloud-native-app . docker run -d -p 8080:8080 cloud-native-app
上記のコマンドでは、まず docker build コマンドを使用して、cloud- という名前の Docker を構築します。ネイティブアプリのミラー。次に、 docker run コマンドを使用して、イメージに基づいて Docker コンテナーを実行し、コンテナーの 8080 ポートをホストの 8080 ポートにマップします。
これで、http://localhost:8080/api/hello にアクセスして、クラウド ネイティブ アプリケーションをテストできます。すべてが正常であれば、返された応答コンテンツが表示されます。
この記事の導入部を通じて、Docker と Spring Boot を使用してコンテナ化されたクラウドネイティブ アプリケーションを構築する方法を学び、詳細なコード例を提供しました。この記事が、クラウド ネイティブ テクノロジをより適切に適用してアプリケーションを開発およびデプロイするのに役立つことを願っています。
以上がDocker と Spring Boot を使用してコンテナ化されたクラウドネイティブ アプリケーションを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。