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 を開く手順

推薦する

Web でよく使われるフォントの紹介 (iOS および Android ブラウザでサポートされているフォント)

年末なので仕事も少なくなっています。私が何もせずにいるのを見ると、上司はきっと不快に思うでしょう。そ...

テーブル切り替えのための JavaScript プラグインのカプセル化

この記事では、テーブル切り替えプラグインを実装するためのJavaScriptのカプセル化コードを参考...

CSS3で実装されたグラデーションスライド効果

成果を達成する コードhtml <div class="css-slideshow&...

Springboot アプリケーションを迅速にデプロイするために Docker とアイデアを統合する詳細なプロセス

目次1. はじめに2. 環境とツール3. Dockerをインストールし、リモート接続を構成する4. ...

私が良いと思うクールなデザインサイトをいくつかまとめてみました。

ウェブサイトをデザインするにはインスピレーションが必要です。良いインスピレーションを得るには、より多...

Minio 軽量オブジェクト ストレージ サービスのインストールとブラウザの使用チュートリアル

目次導入インストール1. マウントするフォルダを作成する2. イメージをプルする3. コンテナを作成...

OpenSSL は双方向認証のチュートリアルを実装します (サーバーとクライアントのコード付き)

1. 背景1.1 問題点最近の製品テスト レポートでは、PKI ベースの認証方法の使用が推奨されて...

React 関数コンポーネントのパフォーマンス最適化のアイデアの詳細な説明

最適化のアイデア最適化には主に 2 つの方向があります。再レンダリングの回数を減らします。 Reac...

CSS セレクターの重みの理解(個人テスト)

コードをコピーコードは次のとおりです。 <スタイル タイプ="text/css&qu...

mysql5.7.22 ダウンロードプロセス図

1. 公式ウェブサイト www.mysql.com にアクセスし、ダウンロードを選択します。 2. ...

Navicateを使用してAlibaba Cloud Server上のMySQLに接続する

1. まず、サーバーの mysql にアクセスして権限を変更します。 GRANT オプション付きで、...

SQLデータベースの14の事例の紹介

データシート /* Navicat SQLite データ転送 ソースサーバー: school ソース...

React 並行関数エクスペリエンス (フロントエンド並行モード)

React は、開発者が Web およびモバイルベースのアプリケーションを作成するために使用するオ...

Linux のリンク解除機能とファイルの削除方法

1. リンク解除機能ハード リンクの場合、unlink はディレクトリ エントリを削除し、inode...

HTML テーブル マークアップ チュートリアル (28): セルの境界線の色属性 BORDERCOLOR

テーブルを美しくするために、セルごとに異なる境界線の色を設定できます。基本的な構文<TD 境界...