Я изучаю mongodb, и в основном у меня есть простое приложение для весенней загрузки, которое подключается к mon go db для сохранения информации.
Свойства моего приложения следующие:
spring.data.mongodb.port=27017
spring.data.mongodb.database=emailDb
spring.data.mongodb.username=admin-user123
spring.data.mongodb.password=admin-password123
spring.data.mongodb.authentication-database=admin
Итак, я создал файл docker -compose, чтобы связать db с моим приложением для весенней загрузки:
version: '3.2'
volumes:
mongodb_data: #creates mount point on docker for mongodb
driver: local
# config postgres, Keycloak & Mongodb
services:
servicel-component:
image: servicel-component
networks:
test:
aliases:
- email
environment:
SPRING_PROFILES_ACTIVE: message
SPRING_RABBITMQ_HOST: rabbitmq
ports:
- 8080:8080 # port for postgres
depends_on:
- rabbitmq
rabbitmq:
image: rabbitmq:3-management
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
ports:
- "5672:5672"
- "15672:15672"
networks:
test:
aliases:
- rabbitmq
mongodb:
image: mongo:latest
networks:
test:
aliases:
- mongodb
environment:
MONGO_INITDB_ROOT_USERNAME: admin-user123
MONGO_INITDB_ROOT_PASSWORD: admin-password123
restart: always
ports:
- 27017:27017
volumes:
- mongodb_data:/data/db
networks:
test:
external: true
Когда вы выполняете docker -compose, запускается следующее исключение:
2020-08-07 09:35:23.063 INFO 1 --- [ main] org.mongodb.driver.cluster : Adding discovered server localhost:27017 to client view of cluster
2020-08-07 09:35:23.143 INFO 1 --- [localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread while connecting to server localhost:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[mongodb-driver-core-3.11.2.jar!/:na]
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:128) ~[mongodb-driver-core-3.11.2.jar!/:na]
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb-driver-core-3.11.2.jar!/:na]
at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]
Caused by: java.net.ConnectException: Connection refused
at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na]
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:589) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:542) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597) ~[na:na]
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:333) ~[na:na]
at java.base/java.net.Socket.connect(Socket.java:648) ~[na:na]
at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:64) ~[mongodb-driver-core-3.11.2.jar!/:na]
at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:79) ~[mongodb-driver-core-3.11.2.jar!/:na]
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65) ~[mongodb-driver-core-3.11.2.jar!/:na]
... 3 common frames omitted
Когда я не запускаю servicel-component на docker, просто запустите его как mvn spring-boot: запустите и запустите mongodb на docker, он отлично работает. Есть идеи, что мне здесь не хватает, пожалуйста?