docker-compose.yml
docker-compose.ymlは以下のような感じになりました. とりあえずMySQLのホスト名はdbserverにし,データベースをdbとしました. そこにSpringがアクセスします.
version: "3.1" services: dbserver: image: mysql ports: - "3306:3306" hostname: dbserver volumes: - ./mysql/volumes:/var/lib/mysql environment: MYSQL_DATABASE: db MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_ROOT_PASSWORD: PASSWORD java: image: java ports: - "8080:8080" volumes: - ./spring:/usr/src/spring tty: true command: bash -c "cd /usr/src/spring && ./gradlew build && java -jar build/libs/spring-0.0.1-SNAPSHOT.jar"
Springの設定ファイル
Springの設定ファイル(src/main/resources/application.yml)は以下のようになりました.
spring: datasource: driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://dbserver:3306/db username: root password: PASSWORD security: basic: enabled: false
これでSpringを起動するとつながりました. いろいろ調べましたが,バージョン3以降ではコンテナ同士のリンクが必要ないらしいです.
まとめ
hostnameで接続できるので,これは覚えといたほうが良いかもしれません.