1
0

PodmanでJava + Spring Boot + MariaDBの環境構築

Posted at

はじめに

有料化に伴い、仕事ではDocker以外を使っている方も多いのではないでしょうか?今回の記事では、Dockerと互換性があるPodmanを使って、Java、Spring Boot、MariaDBをセットアップする方法を紹介します。

前提条件

  • Podmanがインストールされていること
  • Pythonとpipがインストールされていること

環境構築の流れ

podman-composeのインストール

最初にpodman-composeをインストールします。podman-composeはPythonで書かれているため、pipを使用します。

pip3 install podman-compose

インストール後に、podman-composeのPathが通っていることを確認します。

which podman-compose

通っていなければ追加します。

echo 'export PATH=$PATH:/Users/yourusername/Library/Python/3.9/bin' >> ~/.bashrc
// または
echo 'export PATH=$PATH:/Users/yourusername/Library/Python/3.9/bin' >> ~/.zshrc

シェルの再読み込み

source ~/.bashrc
// または
source ~/.zshrc

プロジェクトの作成

Spring Initializrを使用してSpring Bootプロジェクトを作成します。
とりあえず今回はMariaDBを使用するので、以下の依存関係を追加してみてください。

  • Spring Web
  • Spring Batch
  • Spring Data JPA
  • MariaDB Driver

Dockerfileの作成

プロジェクトのルートディレクトリにDockerfileを作成します。

# ベースイメージとしてOpenJDK 17を使用
FROM openjdk:17-jdk-slim

# 作業ディレクトリを設定
WORKDIR /app

# Mavenビルドのために必要なファイルをコピー
COPY mvnw .
COPY .mvn .mvn
COPY pom.xml .

# 依存関係をダウンロード
RUN ./mvnw dependency:go-offline

# プロジェクトのソースコードをコピー
COPY src src

# プロジェクトをビルド
RUN ./mvnw package -DskipTests

# アプリケーションを実行
CMD ["java", "-jar", "target/your-app-name.jar"]

docker-compose.ymlの作成

プロジェクトのルートディレクトリにdocker-compose.ymlファイルを作成します。

version: '3.8'

services:
  app:
    build: .
    ports:
      - "8080:8080"
    environment:
      - SPRING_PROFILES_ACTIVE=dev
    depends_on:
      - db

  db:
    image: mariadb:10.5
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: mydatabase
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword
    ports:
      - "3306:3306"
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

Spring Bootの設定ファイルの更新

src/main/resources/application.propertiesまたはapplication.ymlに、DB接続のための設定を追加します。以下を追記してください。

spring.datasource.url=jdbc:mariadb://db:3306/mydatabase
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDBDialect

Hello Worldしてみる

src/main/java/com/example/projectname/にHelloController.javaを作成して以下を追加してください。

package com.example.earthquakenotification;

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.GetMapping;

@RestController
public class HelloController {
    @GetMapping("/")
    public String hello() {
        return "Hello world";
    }
}

podman-composeによるビルドと起動

プロジェクトのルートディレクトリで以下のコマンドを実行します。

podman-compose up --build

これで、Java、Spring Boot、MariaDBを使用するための環境が構築されます。
アプリケーションには http://localhost:8080 でアクセスできます!
以下のように、Hello Worldがでたら完了です!(※私の環境では8080は別で使っていたので、8081にしています。)
Screenshot 2024-09-18 at 11.25.16.png

まとめ

この記事では、podman-composeを使用してJava、Spring Boot、MariaDBをセットアップする方法を紹介しました。Dockerのビジネス利用有料化に伴い、Podmanは優れた代替ツールとして注目されています。Podmanを使用することで、セキュリティ面での利点を享受しながら、既存のDocker環境をスムーズに移行することができます。ぜひこちらの記事が参考になればうれしいです!

1
0
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
1
0