Springboot mon go исключение с Docker - PullRequest
1 голос
/ 30 мая 2020

Я новичок в docker и пытаюсь подключить приложение весенней загрузки с mon go db, которое работает на docker на порту 27017. В моем pom у меня есть это:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>

Я ничего не указал в application.properties. Ниже приведены журналы сбоя весенней загрузки:

com.mongodb.MongoSocketOpenException: Exception opening socket
    at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:67) ~[mongodb-driver-core-3.8.2.jar:na]
    at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:126) ~[mongodb-driver-core-3.8.2.jar:na]
    at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb-driver-core-3.8.2.jar:na]
    at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
Caused by: java.net.ConnectException: Connection refused: no further information
    at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na]
    at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:579) ~[na:na]
    at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:549) ~[na:na]
    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597) ~[na:na]
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:339) ~[na:na]
    at java.base/java.net.Socket.connect(Socket.java:603) ~[na:na]
    at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:64) ~[mongodb-driver-core-3.8.2.jar:na]
    at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:62) ~[mongodb-driver-core-3.8.2.jar:na]

И журналы из mongodb (docker)

2020-05-30T00:31:55.387+0000 I  NETWORK  [listener] Listening on /tmp/mongodb-27017.sock
2020-05-30T00:31:55.388+0000 I  NETWORK  [listener] Listening on 0.0.0.0
2020-05-30T00:31:55.391+0000 I  NETWORK  [listener] waiting for connections on port 27017
2020-05-30T00:31:55.405+0000 I  INDEX    [LogicalSessionCacheRefresh] index build: done building index _id_ on ns config.system.sessions
2020-05-30T00:31:55.425+0000 I  INDEX    [LogicalSessionCacheRefresh] index build: starting on config.system.sessions properties: { v: 2, key: { lastUse: 1 }, name: "lsidTTLIndex", ns: "config.system.sessions", expireAfterSeconds: 1800 } using method: Hybrid
2020-05-30T00:31:55.426+0000 I  INDEX    [LogicalSessionCacheRefresh] build may temporarily use up to 200 megabytes of RAM
2020-05-30T00:31:55.426+0000 I  INDEX    [LogicalSessionCacheRefresh] index build: collection scan done. scanned 0 total records in 0 seconds
2020-05-30T00:31:55.429+0000 I  INDEX    [LogicalSessionCacheRefresh] index build: inserted 0 keys from external sorter into index in 0 seconds
2020-05-30T00:31:55.431+0000 I  INDEX    [LogicalSessionCacheRefresh] index build: done building index lsidTTLIndex on ns config.system.sessions
2020-05-30T00:31:55.434+0000 I  SHARDING [LogicalSessionCacheReap] Marking collection config.transactions as collection version: <unsharded>
2020-05-30T00:31:56.006+0000 I  SHARDING [ftdc] Marking collection local.oplog.rs as collection version: <unsharded>

Кто-нибудь может мне помочь?

Спасибо!

Ответы [ 2 ]

1 голос
/ 01 июня 2020

Мне удалось решить эту проблему, получив обновление версии Windows 2004, а затем установив Docker Desktop для Windows (после удаления устаревшей Docker Toolbox, которая требовалась для предыдущих версий windows ).

1 голос
/ 30 мая 2020

Решение вышеуказанной проблемы: -

Получив обновление версии Windows 2004 и затем установив Docker Desktop для Windows (после удаления устаревшей Docker Toolbox, которая требовалась для предыдущих версий windows).


Я бы посоветовал вам запустить свои контейнеры через docker-compose и проверить docker-compose.yml ниже для справки.

version: "3"
services:
  api-database:
    image: mongo:3.2.4
    container_name: "api-database"
    ports:
      - 27017:27017
    command: --smallfiles
  api:
    image: XXXX
    ports:
      - XXXX:XXXX
    links:
      - api-database

Настроить mongodb имя хоста с использованием свойства конфигурации spring с использованием имени службы, определенного в docker -compose.

spring.data.mongodb.host=api-database

, а затем запустите

docker-compose up 

Ref: - https://nirajsonawane.github.io/2019/12/16/Spring-Boot-Mongodb-Docker-Compose/

...