0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Java × Spring Boot アプリを Docker + PostgreSQL 環境で構築・デプロイする手順メモ

Last updated at Posted at 2025-05-16

🎯 本記事の目的

Spring Boot で作成した Java Web アプリケーションを、PostgreSQL データベースと連携しながら Docker Compose で構築・起動する手順をまとめます。

以下の方におすすめです:

  • Java × Spring Boot で作ったアプリを Docker で動かしてみたい
  • DBにPostgreSQLを使いたい
  • 開発用のローカル環境をDockerで効率よく構築したい

🐳 1. Docker & Docker Compose のインストール

Windows(WSL2を使用)

  1. Docker Desktop をダウンロードしてインストール
  2. インストール後、設定から「WSL2 をバックエンドとして使用」を有効にする
  3. ターミナルで以下を確認:
docker -v
# Docker version 24.0.x などと表示されればOK

docker compose version
# Docker Compose version v2.x.x などと表示されればOK

📁 2. ディレクトリ構成(例)

.
├── build.gradle
├── docker-compose.yml
├── Dockerfile
├── docker-logs/
├── src/
└── build/libs/app.jar

📦 3. Dockerfile

Spring Boot アプリ(jar)をビルドして実行するための Dockerfile を用意します。
以下のコマンドでDockerfileを作成します。

nano Dockerfile

以下の内容がDockerfileの中身になります。
記載が終わったら、Ctrl + X → Y → Enter で保存して閉じます。

FROM amazoncorretto:21

ENV TZ=Asia/Tokyo
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

WORKDIR /app
COPY build/libs/*.jar app.jar

ENTRYPOINT ["java", "-jar", "app.jar"]

🧩 4. docker-compose.yml

アプリとデータベースを連携する構成です。

services:
  moneytrack-db:
    image: postgres:16.7
    container_name: moneytrack-db
    environment:
      POSTGRES_DB: MoneyTrack
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgresql
    volumes:
      - moneytrack-data:/var/lib/postgresql/data
    ports:
      - "5433:5432"
    networks:
      - moneytrack-network

  moneytrack-app:
    build: .
    image: moneytrack-app
    container_name: moneytrack-app
    ports:
      - "8080:8080"
    environment:
      SPRING_PROFILES_ACTIVE: docker
      SPRING_DATASOURCE_URL: jdbc:postgresql://moneytrack-db:5432/MoneyTrack
      SPRING_DATASOURCE_USERNAME: postgres
      SPRING_DATASOURCE_PASSWORD: postgresql
    volumes:
      - ./docker-logs:/app/docker-logs
    depends_on:
      - moneytrack-db
    networks:
      - moneytrack-network

volumes:
  moneytrack-data:
    name: moneytrack-data

networks:
  moneytrack-network:
    driver: bridge

🚀 5. アプリのビルドと起動

① Spring Boot アプリのビルド(Gradle)

./gradlew clean build

→ build/libs/ に xxx.jar が生成されます。
② Docker起動(Compose)

docker compose up -d --build

📡 6. アクセス確認

アプリ起動後、以下にアクセスして画面が表示されるか確認:

http://localhost:8080/

🧪 7. ログ確認

# コンテナログをリアルタイムで確認
docker compose logs -f moneytrack-app

# ファイルとして出力されたログを確認
cat docker-logs/application.log

🛑 8. 停止・削除

# 停止
docker compose down

# ボリュームも削除(DB初期化されます)
docker compose down -v

✅ 補足
image: を指定することで、独自イメージ名(例:moneytrack-app)を明示的に指定可能です。

volumes: で名前付きボリュームを指定すれば、ホスト上に保存される名前も一貫性が持てます。

🔚 おわりに
Spring Boot アプリを PostgreSQL と連携し、Docker Compose で簡単にローカル環境構築する手順をまとめました。
この構成はそのまま本番環境への移行や AWS への応用も可能です。

👨‍💻 関連リンク
Docker 公式ドキュメント
https://docs.docker.com/

Spring Boot 公式ガイド
https://spring.io/guides

PostgreSQL 公式サイト
https://www.postgresql.org/

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?