Anda melewati DATABASE_HOST
, DATABASE_PORT
, DATABASE_NAME
, DATABASE_USER
dan DATABASE_PASSWORD
tetapi Anda tidak menggunakannya di dalam aplikasi Anda.
Perbarui properti Anda seperti ini. (Lebih baik jika Anda membuat profil sehingga aplikasi Anda berjalan di luar buruh pelabuhan)
spring.datasource.url=jdbc:mysql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}?autoReconnect=true
spring.datasource.username=${DATABASE_USER}
spring.datasource.password=${DATABASE_PASSWORD}
Jika Anda benar-benar ingin menggunakan localhost
sebagai db_url . Anda . Anda juga dapat menggunakan network_mode: "service:[service name]"
properti dari komposisi buruh pelabuhan. Satu-satunya downside adalah bahwa properti ini tidak dapat digunakan dengan port
properti.
version: '3'
services:
docker-mysql:
image: mysql:latest
network_mode: "service:spring-boot-jpa-docker-webapp"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- MYSQL_PASSWORD=root
spring-boot-jpa-docker-webapp:
image: springboot_docker
depends_on:
- docker-mysql
ports:
- 8080:8080
- 3306 #Add this only if you want to expose the mysql to outer world.
environment:
- DATABASE_USER=root
- DATABASE_PASSWORD=root
- DATABASE_NAME=test
Dan file properti Anda bisa terlihat seperti
spring.datasource.url=jdbc:mysql://localhost:3306/${DATABASE_NAME}?autoReconnect=true
spring.datasource.username=${DATABASE_USER}
spring.datasource.password=${DATABASE_PASSWORD}