カテゴリ: Jakarta EE 更新日: 2026/01/21

Docker ComposeでJakarta EEとデータベースを連携!初心者でも簡単な設定方法

Docker ComposeでJakarta EEとDBを連携させる方法
Docker ComposeでJakarta EEとDBを連携させる方法

先生と生徒の会話形式で理解しよう

生徒

「Jakarta EEのWebアプリとデータベースをDockerで連携したいんですが、どうすればいいですか?」

先生

「Docker Composeを使えば、Jakarta EEアプリケーションサーバーとデータベースを簡単に同時に起動して連携させることができますよ。」

生徒

「環境構築が苦手でもできますか?」

先生

「もちろんです。初心者でもできるように丁寧に解説していきますね!」

1. Jakarta EEとデータベースを連携する環境の全体像

1. Jakarta EEとデータベースを連携する環境の全体像
1. Jakarta EEとデータベースを連携する環境の全体像

Jakarta EEはエンタープライズ向けのJavaアプリケーションを開発するためのプラットフォームで、通常はWebアプリケーションサーバー(例:Payara、WildFlyなど)とデータベース(例:PostgreSQL、MySQL)を連携させて使用します。Docker Composeを使えば、これらを1つの構成ファイルで管理でき、開発環境を一瞬で構築できます。

2. Docker Composeの基本構成とは?

2. Docker Composeの基本構成とは?
2. Docker Composeの基本構成とは?

Docker Composeとは、複数のコンテナ(Jakarta EEサーバーとデータベース)をまとめて起動・停止できる便利なツールです。以下はJakarta EEアプリとPostgreSQLを連携させる基本的なdocker-compose.ymlファイルの例です。


version: "3.8"
services:
  payara:
    image: payara/server-full
    ports:
      - "8080:8080"
    depends_on:
      - db
    environment:
      - POSTGRES_URL=jdbc:postgresql://db:5432/sampledb
      - POSTGRES_USER=sampleuser
      - POSTGRES_PASSWORD=samplepass
    volumes:
      - ./target/sampleapp.war:/opt/payara/deployments/sampleapp.war

  db:
    image: postgres:13
    restart: always
    environment:
      POSTGRES_DB: sampledb
      POSTGRES_USER: sampleuser
      POSTGRES_PASSWORD: samplepass
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

3. WARファイルの配置とビルドについて

3. WARファイルの配置とビルドについて
3. WARファイルの配置とビルドについて

Jakarta EEで作成したWebアプリケーションは、MavenやGradleを使って.warファイルにビルドします。この.warファイルをpayaraサービスのボリュームにマウントすることで、自動的にデプロイされます。たとえば、Mavenでビルドするとtarget/sampleapp.warに出力されます。

4. PostgreSQLとの接続設定について

4. PostgreSQLとの接続設定について
4. PostgreSQLとの接続設定について

Jakarta EEアプリ側でPostgreSQLに接続するには、JDBC接続文字列を環境変数で渡すか、アプリケーションの設定ファイル(persistence.xmlglassfish-resources.xmlなど)で指定します。

以下はJDBC URLの例です:


jdbc:postgresql://db:5432/sampledb

ホスト名はdbとすることで、Docker Compose内のPostgreSQLコンテナに接続できます。

5. Docker Composeの起動方法

5. Docker Composeの起動方法
5. Docker Composeの起動方法

準備が整ったら、以下のコマンドでJakarta EEアプリケーションサーバーとPostgreSQLを同時に起動できます。


docker-compose up -d

コンテナが立ち上がると、アプリケーションはhttp://localhost:8080/sampleappでアクセス可能になります。

6. EclipseやIntelliJと連携する方法

6. EclipseやIntelliJと連携する方法
6. EclipseやIntelliJと連携する方法

Jakarta EEアプリケーションをEclipseやIntelliJから開発している場合、WARファイルをローカルでビルドし、Dockerに自動コピーする仕組みを組み込むと便利です。たとえば、Mavenのビルド後にtargetフォルダを監視してdocker cpするシェルスクリプトを作成することもできます。

7. Jakarta EE環境でよく使われるDB構成

7. Jakarta EE環境でよく使われるDB構成
7. Jakarta EE環境でよく使われるDB構成

Jakarta EEでは、PostgreSQL、MySQL、MariaDB、Oracle Databaseなどがよく使われます。初心者にはPostgreSQLが設定も簡単で、公式Dockerイメージも整っており、Jakarta EEとの相性も良いためおすすめです。

8. トラブル時の確認ポイント

8. トラブル時の確認ポイント
8. トラブル時の確認ポイント

起動後にアプリケーションがうまく動かない場合は、以下の点をチェックしましょう。

  • PayaraのログでWARファイルのデプロイエラーがないか
  • DBとの接続URLやユーザー名・パスワードが正しいか
  • PostgreSQLが正しく起動しているか(docker logs db
  • ホスト名dbで接続できているか

9. Docker Composeで簡単に再現できる環境構築

9. Docker Composeで簡単に再現できる環境構築
9. Docker Composeで簡単に再現できる環境構築

Jakarta EEの学習や開発において、Docker Composeを使った構成は再現性が高く、複数人での開発やCI環境にも最適です。サーバーやデータベースのインストール不要で、OSに依存せず動作するため、特に初心者には大きな助けとなります。

カテゴリの一覧へ
新着記事
New1
Jakarta EE
Jakarta EEとクラウドネイティブ開発の相性とは?初心者向けにわかりやすく解説
New2
Jakarta EE
JakartaEE JSPのリクエスト属性とスコープの基本を徹底解説!初心者向け入門ガイド
New3
Play Framework
Play Frameworkのビューテストを徹底解説!Twirlテンプレートの品質を高める方法
New4
Jakarta EE
JakartaEE フィルタで認証と認可を実装する方法を初心者向けに解説!サーブレットのセキュリティ入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEとSpringの比較|どちらを選ぶべきか?初心者向けに徹底解説!
No.2
Java&Spring記事人気No2
Play Framework
Play Frameworkのビューを共通化!テンプレート間のインクルード方法を徹底解説
No.3
Java&Spring記事人気No3
Play Framework
Play Frameworkプロジェクト作成直後にやるべき初期設定ガイド!初心者でも安心
No.4
Java&Spring記事人気No4
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.5
Java&Spring記事人気No5
Play Framework
Play Frameworkで多言語対応(i18n)を徹底解説!Twirlテンプレートでの使い方
No.6
Java&Spring記事人気No6
Jakarta EE
Jakarta EEの標準仕様とAPI一覧を完全解説!初心者でもわかるエンタープライズJavaの基本
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.8
Java&Spring記事人気No8
Play Framework
Play FrameworkでCSSやJavaScriptを読み込む方法を徹底解説!静的リソースの組み込みガイド