आप DATABASE_HOST
पास कर रहे हैं , DATABASE_PORT
, DATABASE_NAME
, DATABASE_USER
और DATABASE_PASSWORD
लेकिन आप इसे अपने ऐप के अंदर उपयोग नहीं कर रहे हैं।
इस तरह अपनी संपत्तियों को अपडेट करें। (बेहतर है यदि आप एक प्रोफ़ाइल बनाते हैं ताकि आप ऐप डॉकटर के बाहर चले)
spring.datasource.url=jdbc:mysql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}?autoReconnect=true
spring.datasource.username=${DATABASE_USER}
spring.datasource.password=${DATABASE_PASSWORD}
यदि आप वास्तव में localhost
का उपयोग करना चाहते हैं आपके db_url . के रूप में . आप network_mode: "service:[service name]"
. का भी उपयोग कर सकते हैं डोकर रचना की संपत्ति। केवल नकारात्मक पक्ष यह है कि इस संपत्ति का उपयोग port
. के साथ नहीं किया जा सकता है संपत्ति।
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
और आपकी प्रॉपर्टी फ़ाइल कुछ इस तरह दिख सकती है
spring.datasource.url=jdbc:mysql://localhost:3306/${DATABASE_NAME}?autoReconnect=true
spring.datasource.username=${DATABASE_USER}
spring.datasource.password=${DATABASE_PASSWORD}