Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ferretdayo/javawithangularjs
フロントAngularJS, バックJava(テストはSpock)
https://github.com/ferretdayo/javawithangularjs
angular4 groovy spock spring-boot
Last synced: 16 days ago
JSON representation
フロントAngularJS, バックJava(テストはSpock)
- Host: GitHub
- URL: https://github.com/ferretdayo/javawithangularjs
- Owner: ferretdayo
- Created: 2017-10-15T15:51:27.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-10-16T05:58:10.000Z (over 7 years ago)
- Last Synced: 2024-11-12T15:12:09.282Z (3 months ago)
- Topics: angular4, groovy, spock, spring-boot
- Language: JavaScript
- Homepage:
- Size: 174 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Spring Boot with Docker
## how to use
local環境で動かす場合```
sh ./serve.sh -e local
```prod環境で動かす場合
```
sh ./serve.sh -e prod
```それぞれ中では`docker-compose up`をしている.コマンド実行時には自動的にマイグレーションが実行されている.
実行後, `http://127.0.0.1:8080` or `http://localhost:8080` にアクセスすることでブラウザで確認できる.
mysqlには `mysql -h127.0.0.1 -u docker -p` でパスワードが `password`で接続できる.ユーザ名とパスワードとDB名は,`docker-compose.yml`を参考にしていただきたい.
現在は127.0.0.1から対象のmysqlのコンテナにアクセスできるが,mysqlのコンテナが複数になる場合,mysqlの固定したipを外からアクセス出来るようにする必要があると思われる.その際には`docker-compose.yml`のnetworksの対象のネットワークに`external: true`を追加するといけるのではないか?※やってませんのでわかりません.
## マイグレーションの実行
`docker exec`コマンドでコンテナに対してコマンドを実行する.
`docker exec`の次の`springdocker_app_1`は,`docker ps`で表示されるWebアプリケーションを動かしているコンテナのNAMESの部分である.
コマンドラインからflywayを実行するには,各環境のapplication.propetiesを読み込む必要があるため,`-Dflyway.configFile=`で指定する必要がある.### マイグレーション情報の確認
`./mvnw flyway:info`でマイグレーション情報の確認をすることが出来る.localのapplication.propertiesで実行したい場合
```
docker exec springdocker_app_1 ./mvnw flyway:info -Dflyway.configFile=./src/main/resources/local/application.properties
```prodのapplication.propertiesで実行したい場合
```
docker exec springdocker_app_1 ./mvnw flyway:info -Dflyway.configFile=./src/main/resources/prod/application.properties
```### マイグレーションの実行
`./mvnw flyway:migrate`でマイグレーションの実行をすることが出来る.localのapplication.propertiesで実行したい場合
```
docker exec springdocker_app_1 ./mvnw flyway:migrate -Dflyway.configFile=./src/main/resources/local/application.properties -Dflyway.locations=filesystem:./src/main/resources/common/db/migration,filesystem:./src/main/resources/local/db/migration
```prodのapplication.propertiesで実行したい場合
```
docker exec springdocker_app_1 ./mvnw flyway:migrate -Dflyway.configFile=./src/main/resources/prod/application.properties -Dflyway.locations=filesystem:./src/main/resources/common/db/migration,filesystem:./src/main/resources/prod/db/migration
```### テーブルの削除
`./mvnw flyway:clean`でテーブルを削除出来る.本番環境では絶対してはいけない.localのapplication.propertiesで実行したい場合
```
docker exec springdocker_app_1 ./mvnw flyway:clean -Dflyway.configFile=./src/main/resources/local/application.properties
```## フォルダ構成について
以下のmigrationやapplication.propertiesの各環境ごとに分けているのは,`pom.xml`の``に記述されている.
### migration
`/src/main/resources/common/db/migration`には共通のマイグレーションファイルが入っている.また,各環境ごとにマイグレーションファイルを用意することが出来る.
例えば,local環境で,テストデータを入れたい場合`/src/main/resources/local/db/migration`にテストデータを挿入するマイグレーションファイルを入れることでマイグレーション時に実行してくれる.
### application.properties
`/src/main/resources/`以下に各環境ごとにフォルダ分けされている.
local環境は`/src/main/resources/local`の`application.properties`を参照する.