GradleでSpringアプリをDocker化する

ドキュメントによると、
Dockerはアプリケーションを開発、出荷、実行するためのオープンプラットフォームです。Dockerを使用すると、アプリケーションをインフラストラクチャから分離できるため、ソフトウェアを迅速に提供できます。Dockerを使用すると、アプリケーションを管理するのと同じ方法でインフラストラクチャを管理できます。コードを迅速に出荷、テスト、デプロイするためのDockerの方法論を利用することで、コードを記述してから本番環境で実行するまでの遅延を大幅に減らすことができます。

UnsplashのDominikLückmannによる写真

今日は以下のことをカバーします

  1. Dockerの概要
  2. 詳細な説明付きのDockerizingSpringアプリ
  3. Dockerのさまざまな操作(例:イメージの作成と削除、コンテナーの作成と削除など)
  4. コマンドラインとDockerデスクトップアプリを使用してDockerイメージを監視する
  5. アドバンスパート:Dockerタスクの自動モーション例:Dockerのビルド、実行、GradleコマンドからのDockerハブへのプッシュ
  1. Dockerの概要
  2. Dockerエコシステムとアーキテクチャ

Dockerイメージ:

  • Dockerコンテナを作成するための手順が記載された読み取り専用テンプレート。
  • ファイル名はDockerfileで、コードフォルダーに配置されます
  • 手順と画像関連ファイルが含まれています
  • ここでは、Javaの依存関係とwarファイルおよびその実行コマンドについて説明します。
  • バージョンを管理し、Dockerハブのようにレジストリにプッシュします
  • コンテナは、イメージの実行可能なインスタンスです
  • Docker APIまたはCLIを使用して、コンテナーを作成、開始、停止、移動、または削除できます。
  • コンテナが削除されると、永続ストレージに保存されていない状態への変更はすべて消えます。
  • Dockerイメージからコンテナーを構築し、このコンテナーを特定のポートで実行します。これらの手順に必要なポートマッピング
  • 適切なバージョンのDockerイメージを保存します
  • すべての有名なアプリケーションは、レジストリにエントリを持っている必要があります
  • Docker Hubは誰でも使用できるパブリックレジストリであり、DockerはデフォルトでDockerHubでイメージを検索するように構成されています。
  • 独自のプライベートレジストリを実行することもできます。
  • docker push and pullコマンドは、パブリックレジストリのイメージをプッシュおよびプルするために使用されます
  • Docker APIリクエストをリッスンし、Dockerオブジェクトを管理します
  • デーモンは、他のデーモンと通信してDockerサービスを管理することもできます。
  • 多くのDockerユーザーがDockerと対話する主な方法
  • クライアントコマンドを受け取り、Dockerデーモンに送信します
  • 複数のデーモンと通信できます
Dockerfileの場所とコード

Dockerファイルコードは

FROM: openjdk:8アルパインイメージを使用してこのイメージを構築しています。 JDKにはさらに多くの画像があり、このバージョンを使用しています。 Dockerハブリンク
ARGからより多くの画像を確認できます。ARG変数としてjarパスを使用しています。ここで、jarファイルはbuild / libs /springreadyapp.jarにあります。 ARGは、Dockerイメージのビルド中(RUNなど)にのみ使用できます。イメージが作成され、コンテナーがそこから開始された後は使用できません(ENTRYPOINT、CMD)
コピー:このjarファイルをspringreadyapp.jarとしてコピーします。このjarファイルに対して
ENTRYPOINTという名前でrunコマンドを実行します。これは、コンテナーの起動時に開始するために実行可能になります。ENTRYPOINTを使用するため、JSON配列として定義する必要があります一部のアプリケーション引数のCMDと組み合わせて。ここでは、jarファイルの実行コマンドを渡します

3.Dockerのさまざまな操作
以下の手順に従う必要があります

  • GradleコマンドとJar作成を使用してプロジェクトをビルドします。
  • jarファイルに基づいてDockerイメージをビルドします
  • 提供されたDockerイメージを使用してコンテナーを実行します
  • DockerコンテナとDockerイメージを削除する

chmod 777 gradlew
./gradlew clean build -x test

      

ドッキングウィンドウのイメージを構築する
docker buildコマンドがDockerfileと「文脈」からドッカーイメージを構築します。ビルドのコンテキストは、指定されたPATHまたはにあるファイルのセットですURL。このコマンドを使用して、そのコンテキストの指定された命令とファイルで画像を圧縮します。この例では、OpenJDK 8バージョンからイメージをビルドし、libsフォルダーからjarをコピーして、実行するコマンドを追加します。
タグ付きのビルドコマンドは次のとおりです。

Build Image
docker image build -t springreadyapp .
View Images
docker images

ここでイメージのビルドが完了し、イメージIDは次のとおりです:c7b3be12d247

Dockerコンテナーをイメージ
から実行する次に、イメージc7b3be12d247からコンテナーを実行する必要があります。これを行うには、ポートマッピングも行う必要があります。これがコマンドです

Run command
docker run -d -p 8081:8081 c7b3be12d247
Container List
docker container ps

コンテナーは実行中であり、コンテナーIDはc7b3be12d247です。Dockerコンテナの内部ログは次のとおりです。

これで、アプリケーションが実行され、永遠のポート8081で実行されます。ここから出力を確認できます。

コンテナと画像の制御

Docker container stop
docker container stop 35ce00ba436f
Here, 35ce00ba436f is the container id
Docker container removed
docker container rm -f 35ce00ba436f
Here, -f means forcefully removing the container. This is optional

      

docker image rm c7b3be12d247
ここで、c7b3be12d247はdocker imageidです。

このgithubリポジトリで完全なソースコードを入手できます。
Swagger URL:http://localhost:8081/springreadyapp/swagger-ui.html#/

提案された投稿

Spring Boot での Apache Kafka の構成と使用

スプリングブーツを履いたカフカ

Spring Boot での Apache Kafka の構成と使用

はじめに Apache Kafka は、大規模で高スループット、フォールトトレラントなリアルタイム データ ストリーミングを処理するオープンソースの分散ストリーミング プラットフォームです。このシステムは、プロデューサーがトピックにメッセージをパブリッシュし、コンシューマーがそれらのトピックをサブスクライブしてメッセージを消費するパブリッシュ/サブスクライブ モデルに基づいています。

Spring Boot 3.0 を使用した Spring Security ロールベースの認証と認可の実装

Spring Boot 3.0 を使用した Spring Security ロールベースの認証と認可の実装

学習者の皆さん、こんにちは。ここでは、Spring Boot を使用した Spring Security の実装について説明します。Spring セキュリティは、一般的な攻撃に対する認証、承認、および保護を提供します。

関連記事

24 年度に炭素除去に資金を提供

経路全体にわたる Carbon180 の割り当てリクエストの内訳

24 年度に炭素除去に資金を提供

アリソン・リー著、マネージング政府問題顧問 連邦政府の年次歳出プロセスは、二酸化炭素除去 (CDR) に資金を提供する取り組みの中心です。毎年、Carbon180 は、来年の資金がどこに流れるかの指針となるよう、さまざまな議会事務所に要望書を提出しています。

カウボーイの嘘

巨大企業はいかにしてアメリカ国民にひどい嘘を売ったのか

カウボーイの嘘

西のなだらかな丘陵地帯では、太陽の最初の光が平原の曇った草を照らす、まばゆいばかりの金色の朝です。真っ黒で巨大な穏やかなアンガス牛の群れが日の出を背景にシルエットを描き、誰もがよく知っている場所へ人里離れた道を進んでいます。朝食バー。

安全な労働環境の構築

安全な労働環境の構築

「私が危険にさらされたとき、彼は私を守ってくれます。彼は私をテントの中に隠すでしょう。

その脅威アーカイブ: Vol 7 ブラックバスタ

その脅威アーカイブ: Vol 7 ブラックバスタ

今日の相互接続された世界では、サイバー攻撃の脅威がかつてないほど蔓延しています。サイバー犯罪者や国家主体は常に脆弱性を悪用して貴重なデータを盗もうとしており、あらゆる規模の組織に重大なリスクをもたらしています。