#内容
Docker docker-compose下でSpringBootを動かすことに挑戦した。
システムインテグレーターの現場でもDockerを使うことが議題に上がるようになっているのは
実際に見聞きするようになっている。
#リソース
https://github.com/noikedan/springmybatis
#前提
Dockerが入っていること
docker-compose が入っていること
imageやコンテナはできる限り整理していることが望ましいかと思われる。
実行確認はマッキントッシュで行なっている。
都度 cd pwd ls などのコマンドを使用している。
参考
https://suin.io/537
https://github.com/IBMDeveloperTokyo/DojoBasicLab/tree/master/Lab1_ShellCommand/Lab1-1_CommandLineBasic
#イントロダクション
Dockerが動いているのを確認し、余計なコンテナがあれば削除する。
リソースをターミナルから取得し、springmybatis内に移動する。
docker info
docker ps
docker rm -f postgres ← 削除系なので注意すること
git clone https://github.com/noikedan/springmybatis.git
cd springmybatis
注意点:gitが入ってない場合はダウンロードで今回のタスクは完了できます。
#手順
基本これでいけるはずあとは
Google検索などで・・・
0.
application.ymlを
はじめてコミットを参考にapplication.properties に変更する。
内容は
mybatis.configuration.map-underscore-to-camel-case=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.url=jdbc:postgresql://postgres:5432/testdb
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.username= postgres
spring.datasource.password=admin
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=none
jarを作成する。
./mvnw clean package -DskipTests
確認方法
・BUILD SUCCESS
・springmybatis/targetフォルダ内でjarができていることを確認する。
注意点
springmybatis内で行うこと。以下断りがない限り同様に行う。
docker imageをビルドしてRUNを行う。
docker build ./ -t springbootapp
参考
Dockerfile
確認方法
springbootapp imageができていることを確認する。
docker image ls -a
コンテナ同士をデプロイする。
docker-compose up
参考:docker-compose.yml
確認方法
エラーが出てないことを確認する。
別ターミナルを立ち上げてデータベースが立ち上がっていることを確認する。
データベースの中に入る。
docker info
docker -ps
docker exec -it postgres bash
psql -h localhost -p 5432 -U postgres -d postgres
\c testdb
注意点
springmybatis内でなくてもオペレーション可能のはず。
SQL文を流す。
CREATE TABLE IF NOT EXISTS staff ( id SERIAL, name VARCHAR(60), email VARCHAR(254) NOT NULL, status BOOLEAN NOT NULL, registration DATE NOT NULL );
INSERT INTO staff(name, email, status, registration) VALUES('中池', 'nakaike@example.com', 't', CURRENT_DATE); INSERT INTO staff(name, email, status, registration) VALUES('田中', 'tanaka@example.com', 't', CURRENT_DATE);
下記アドレスにアクセルする。
http://localhost:8080/
確認方法
一覧画面表示