カテゴリ: 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
Play Framework
Play Frameworkでクッキーを守る!Secure属性とHttpOnly属性の設定方法を徹底解説
New2
Play Framework
マイクロサービス時代におけるPlay Frameworkの位置付けを徹底解説!初心者でもわかる最新Javaフレームワークの役割
New3
Play Framework
Play Frameworkとは?特徴と歴史を初心者向けにわかりやすく解説
New4
Jakarta EE
Jakarta EEのServletフィルタとは?仕組みと役割を初心者向けにやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.2
Java&Spring記事人気No2
Jakarta EE
Jakarta サーブレットのdoGetとdoPostの違いと使い分けを徹底解説!初心者でもわかるHTTPリクエスト処理
No.3
Java&Spring記事人気No3
Jakarta EE
Jakarta EEとは?Java EEからの移行の歴史をやさしく解説
No.4
Java&Spring記事人気No4
Jakarta EE
Jakarta EE JAX-RSインターセプタの仕組みを完全解説 初心者でも理解できるReaderInterceptorとWriterInterceptorの使い方
No.5
Java&Spring記事人気No5
Play Framework
Play Frameworkでセッション管理と認証を連携!Java初心者向けログイン実装ガイド
No.6
Java&Spring記事人気No6
Play Framework
Play Frameworkのセッション固定攻撃対策!Javaで安全なログイン機能を実装する方法
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EEを支えるEclipse Foundationの役割とは?初心者向けにわかりやすく解説
No.8
Java&Spring記事人気No8
Jakarta EE
Jakarta EE JSON-PとJSON-Bの違いと役割を徹底解説 初心者でも理解できるJSON処理の基本