Docker で Java 8 Spring Boot アプリケーションを開発する方法

Docker で Java 8 Spring Boot アプリケーションを開発する方法

この記事では、ローカル マシンに Java 8 をインストールせずに、Java 8 を使用して簡単な Spring Web アプリケーションを開発および実行する方法を説明します。

Python 開発者は仮想環境を使用して、プロジェクトごとに個別の環境を作成および管理します。各プロジェクトでは、異なるバージョンの Python を使用して、Python の依存関係を実行、保存、解決します。 Java や他の多くのテクノロジーは仮想環境の概念をサポートしていません。この時点で、Docker が役に立ちます。

Docker は仮想化プラットフォームです。基本情報とインストール ガイドは、Docker の公式 Web サイトから入手できます。

Docker Toolbox をインストールしたら、サンプル アプリケーションに必要な Java 8 や MySQL をインストールする必要はありません。

まず、 Docker-composeファイルを確認しましょう。

バージョン: '2'
サービス:
 スプリングアプリケーションサーバー:
  建てる:
   コンテクスト: 。 
   dockerfile: springapp.dockerfile
  ポート: 
   - 「8080:8080」
  ネットワーク:
   - ネットスプリングDB
  ボリューム:
   - .:/vol/開発
  依存:
   -mysqldbサーバー
 mysqldbサーバー:
  建てる:
   コンテクスト: 。 
   dockerfile: mysqldb.dockerfile
  ポート:
   - 「3306:3306」
  ネットワーク:
   - ネットスプリングDB
  環境:
   MYSQL_DATABASE: テストデータベース
   MYSQL_USER: ユーザー
   MYSQL_PASSWORD: パスワード
   MYSQL_ROOT_PASSWORD: ルートパスワード
  コンテナ名: mysqldbserver
ネットワーク:
 ネットスプリングDB:
  ドライバー: ブリッジ

「net-spring-db」にはそれぞれ 2 台のサーバーがあります。最初のものは「springappserver」と呼ばれ、 springapp.dockerfileを使用して構成されます。 2 番目は mysqldbserver という名前で、 mysqldb.dockerfileを使用して構成されます。

それでは、springapp.dockerfile を見てみましょう。

#
# Java 1.8 と Maven Dockerfile
#
#
# ベースイメージをプルします。
java:8より
# メンテナー
メンテナー Dursun KOC "[email protected]"
# パッケージを更新し、Maven をインストールします
走る \
 エクスポート DEBIAN_FRONTEND=非対話型 && \
 sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
 apt-get update && \
 apt-get -y アップグレード && \
 apt-get install -y vim wget curl maven
# ボリュームをアタッチする
巻 /vol/開発
# 作業ディレクトリを作成
mkdir -p /vol/development を実行します。
ワークディレクトリ /vol/development
# maven 実行
CMD ["mvn", "clean", "package", "exec:java"]

Docker ファイルは、Docker Hub の Java 8 イメージを継承する Docker イメージを構成します。 Java 8 イメージに vim、wget、curl、Maven をインストールし、既存のプロジェクト コードを格納するためのボリュームを設定しました。最後に、Maven コマンドを実行してアプリケーションを実行します。

それでは、mysqldb.dockerfile を確認しましょう。

mysql/mysql-server から
メンテナー Dursun KOC <[email protected]>
# データベース初期化スクリプトをコピーします: 
# /docker-entrypoint-initdb.d の内容は、mysqld の起動時に実行されます
mysql/<yyyy-MM-dd> /docker-entrypoint-initdb.d/ を追加します。

Docker ファイルは、Docker Hub の MySQL/mysql-server イメージを継承する Docker イメージを構成します。 MySQL イメージに db-schema 作成スクリプトを配置しました。それらは MySQL フォルダー内にあります。このフォルダーには、「person」テーブルを作成するための SQL ファイル (data.sql) があります。

それでは、アプリケーションの構造を見てみましょう。

アプリケーションはsrc / com / turkcell / softlab / Application.javaファイルで起動され、唯一のコントローラーは PersonController (src/com/turkcell/softlab/controller/PersonController.java) です。

簡単なコマンドでプロジェクト全体を実行できます:

docker-compose up -d

テストするには、ローカル コンピューターで次の 2 つのコマンドを使用します。

• 新しい人物を作成します:

curl -H "Content-Type: application/json" -X POST -d "{\"first\":\"Mustafa\",\"last\":\"KOÇ\",\"dateofbirth\"381110400000,\"placeofbirth\":\"Erzincan\"}" "http://192.168.99.100:8080/people"

• データベース内の既存の人物の一覧を表示します。

curl -H "コンテンツタイプ: application/json" -X GET "http://192.168.99.100:8080/people"

要約する

上記は、Docker で Java 8 Spring Boot アプリケーションを開発するために私が紹介した方法です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • DockerでJavaプログラムを起動する方法
  • Dockerを使用してシンプルなJava開発およびコンパイル環境を構築する方法の詳細な説明
  • Dockerを使用してJava環境を構築する手順
  • Javaデータ開発補助ツールDockerと一般プログラムの使い方

<<:  JSはモバイル端末の画面を1つずつ上下にスライドさせる機能を実装します

>>:  MySQL binlog を開く手順

推薦する

CentOS 8 システム FTP サーバーのインストールとパッシブ モードの設定の詳細なチュートリアル

目次1. 基本を理解する2. システム環境を確認する3. ftpコマンドをインストールする[オプショ...

Bootstrap 3.0 学習ノート グリッドシステム事例

序文前回の記事では、主にグリッドシステムの基本原理を学び、簡単なケースを通してその原理を実践しました...

カルーセルの制作方法を実現するjs

この記事では、カルーセル画像の表示を実現するためのjsの具体的なコードを参考までに共有します。具体的...

HTML の doctype とエンコーディングに関する簡単な説明

文書タイプDoctype は、指示を解析するためにどのバージョンの HTML を使用するかをブラウザ...

Linux で Nginx 1.16.0 をインストールするための詳細なチュートリアル

最近 Linux をいじっていたので、nginx の新しいバージョンをインストールしたいと思いました...

MySQL の 2 種類の一時テーブルの使用方法の詳細な説明

外部一時テーブルCREATE TEMPORARY TABLE によって作成された一時テーブルは、外部...

JavaScriptはPromiseを使用して複数の繰り返しリクエストを処理します

1. なぜこの記事を書くのですか?重複リクエストの処理に関する記事をたくさん読んだことがあるでしょう...

MySQL でのテーブルの作成と削除の詳細な例

テーブル作成コマンドには以下が必要です。 テーブルの名前フィールド名各フィールドを定義します(タイ...

nginxプロキシsocket.ioサービスの落とし穴の詳細な説明

目次Nginx は 2 つの socket.io サーバーをプロキシします。 socket.ioの動...

HTML と CSS に関する基本的なメモ (フロントエンドでは必読)

HTMLに触れた当初はレイアウトにいつもテーブルを使っていましたが、とても面倒で見た目も悪かったの...

CentOS 7 での mysql 5.7 のインストール チュートリアル

1. 公式MySQL Yumリポジトリをダウンロードしてインストールする 実行ファイル: mysql...

Adobe Brackets の簡単な使い方のグラフィックチュートリアル

Adobe Brackets は、HTML、CSS、JavaScript 用のオープンソースでシンプ...

Centos8 で NIS ドメイン サービスをセットアップおよび構成するための詳細な手順

目次NIS の紹介ネットワーク環境: 1. 環境の準備(両方のノードが必要) 2.nisマスターサー...

Docker で Confluence をデプロイする

1. 環境要件1. Docker 17以上がインストールされている2. コンテナ操作docker r...

DockerコンテナでLNMPをコンパイルする例

目次1. プロジェクトの説明2. Nginxイメージの作成3. MySQLイメージの作成4. PHP...