ローカルにあるのSpringboot/KotlinとDockerコンテナ上のMySQLを接続します。
環境
Docker: 18.09.2
Springboot: 2.1.5
Kotlin: 1.3.31
MySQL: 5.7.26
docker-compose.ymlの作成
まずはMySQLのDockerコンテナをサクッと立てます。
ファイルの作成場所はプロジェクトのディレクトリ直下にしましょう。
db:
image: mysql:5.7
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: sample_sql //今回はsample_sqlというdatabaseを作成します。
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: root
わかりやすくするため、最低限のことしか書いていません。
applocation.propertiesの編集
プロジェクト名/src/main/resources
にあるapplication.properties
を編集します。
作成直後は空だと思いますので、次のコードを入力しましょう。
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/sample_sql
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url
はどこにあるデータベースと接続するのかを指示するものです。
jdbc:mysql://127.0.0.1:3306/sample_sql
は127.0.0.1:3306で接続しているDockerコンテナの中のsample_sql
というデータベースを参照しています。
ここであらかじめsample_sql
が作成されていないとエラーが出るので注意しましょう。
参考文献
docker-composeでMySQL5.7を起動して接続してみた
Spring Bootでデータベースに接続する
Spring Boot Reference Guide
SpringBootからDockerコンテナのMySQLに接続する方法
Kotlin Webアプリケーション 新しいサーバサイドプログラミング