0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SpringBoot/JPAのはじめ方0 - Docker設定

Last updated at Posted at 2022-10-01

こんにちは。こまつです。

概要

サーバサイドのアプリ開発はDBにアクセスしながら進めると思いますが、ローカルにDBを立ててしまうと
「プロジェクト毎のDB管理が煩雑になる」「ローカル環境が汚れる」といった問題が起こります。
そのためdocker上にDBを起動するのがおすすめです。
マイグレーションSQLも一緒に管理すれば、テーブル再構成、データ復元も気軽に行えます。
ここではDocker設定とDB起動、IntelliJでのDB参照までやります。

前提

dockerの知識はここ
https://knowledge.sakura.ad.jp/13265/

docker desktopのインストールはここ
(mac)
https://matsuand.github.io/docs.docker.jp.onthefly/desktop/mac/install/
(windows)
https://matsuand.github.io/docs.docker.jp.onthefly/desktop/windows/install/

dockerファイルを作成する

必要なファイルは以下の3つ。

docker-compose.yaml

docker-compose.yaml
version: '3'
services:
  mysql:
    build: ./docker/mysql <- Dockerfileの位置
    container_name: hello_springboot_kt_mysql <- コンテナ名。ユニークな名前をつけておいた方が管理しやすい
    volumes:
      - ./docker/mysql/conf.d/my.cnf:/etc/mysql/conf.d/my.cnf <- mysqlのconfig
    ports:
      - 3306:3306 <- ポート。DB複数起動する場合はそれぞれ別のポートを指定する

Dockerfile

FROM mysql:8 <- MYSQLのバージョン指定
ENV MYSQL_DATABASE testdb <- DB名
ENV MYSQL_USER mysql <- ユーザ名
ENV MYSQL_PASSWORD password <- パスワード
ENV MYSQL_ROOT_PASSWORD password <- ルートパスワード
CMD [ "mysqld" ] <- デーモン起動

MySQLの設定ファイル

my.cnf
[mysqld]
character-set-server=utf8mb4 <- 文字コード
collation-server=utf8mb4_bin

# time zone
default-time-zone = SYSTEM
# log_timestamps = SYSTEM

# default authentication plugin
default-authentication-plugin = mysql_native_password

[mysql]
default-character-set=utf8mb4 <- 文字コード

[client]
default-character-set=utf8mb4 <- 文字コード

具体的な配置場所は以下を参照ください
https://github.com/komkomh/HelloSpringBootKt

docker上にMySQLを起動する

起動コマンド

docker-compose up

IntelliJなら2行目の横にある矢印をクリック
スクリーンショット 2022-10-02 2.12.01.png

docker desktopで起動を確認する
スクリーンショット 2022-10-02 2.13.04.png

接続してみる

お手持ちのDBクライアントから接続を確認ください。

以下、IntelliJでの接続確認手順になります。

「右のDBタブ」 → 「+ボタン」 → 「MySQL」
スクリーンショット 2022-10-02 2.16.56.png

「接続情報を入力する」 → 「Test Connection」 → (Succeededでたら) → 「OK」
スクリーンショット 2022-10-02 2.20.01.png

接続できると以下の表示
スクリーンショット 2022-10-02 2.22.48.png

アプリを起動し、テーブル作成後にリフレッシュ
スクリーンショット 2022-10-02 2.24.37.png

まとめ

以上でDocker上にMySQLの構築、DBの参照までできました。
IntellJのDBクライアントは多機能のため開発効率が実感しやすいです。
※私はultimate使っているので確認できてないですが、無料版のIntelliJにDBクライアントなかったらすみません。

◾️開発時のDBはdockerで管理するのがいい

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?