Spring Boot尝试连接到Mongo localhost

问题描述 投票:1回答:2

我有一个使用Mongo的Spring Boot 2.x项目。我通过Docker(在本地使用compose)和Kubernetes运行它。我正在尝试将我的服务连接到Mongo服务器。这让我感到困惑,但是对于开发我使用Mongo的本地实例,但是在GCP中部署我已经命名为mongo服务。

这是我的application.properties文件:

#mongodb
spring.data.mongodb.uri= mongodb://mongo-serviceone:27017/serviceone

#logging
logging.level.org.springframework.data=trace
logging.level.=trace

而我的Docker组成:

version: '3'

# Define the services/containers to be run
services:
  service: #name of your service
    build: ./ # specify the directory of the Dockerfile
    ports:
      - "3009:3009" #specify ports forwarding
    links:
      - mongo-serviceone # link this service to the database service
    volumes:
      - .:/usr/src/app
    depends_on:
      - mongo-serviceone

  mongo-serviceone: # name of the service
    image: mongo
    volumes:
        - ./data:/data/db
    ports:
        - "27017:27017"

当我尝试使用docker-compose时。我收到以下错误:

mongo-serviceone_1 | 2018-08-22T13:50:33.454 + 0000 I NETWORK [initandlisten]等待端口27017上的连接service_1 | 2018-08-22 13:50:33.526 INFO 1 --- [localhost:27017] org.mongodb.driver.cluster:连接到服务器localhost时监视器线程中的异常:27017 service_1 | service_1 | com.mongodb.MongoSocketOpenException:异常打开套接字service_1 |在com.mongodb.connection.SocketStream.open(SocketStream.java:62)〜[mongodb-driver-core-3.6.3.jar!/:na]

运行docker ps告诉我:

692ebb72cf30        serviceone_service        "java -Djava.securit…"   About an hour ago   Up 9 minutes        0.0.0.0:3009->3009/tcp, 8080/tcp   serviceone_service_1
6cd55ae7bb77        mongo                      "docker-entrypoint.s…"   About an hour ago   Up 9 minutes        0.0.0.0:27017->27017/tcp           serviceone_mongo-serviceone_1

当我尝试连接到本地mongo时,我认为通过使用名称“mongo-serviceone”

docker kubernetes docker-compose
2个回答
1
投票

很难说确切的问题是什么,但也许这只是一个问题,因为“spring.data.mongodb.uri =”之后和“mongodb:// mongo-serviceone:27017 / serviceone”之前的空格“?”

如果没有,可以执行“服务”容器并尝试ping mongodb:ping mongo-serviceone:27017

让我知道这个的输出,所以我可以帮助您分析和解决这个问题。

或者,您可以从使用docker compose切换到Kubernetes本机开发工具,因为您计划在Kubernetes上运行您的应用程序。以下是可能的工具列表:

允许热重装:

适用于开发的纯CI / CD工具:

对于大多数人来说,在GCP上的现有群集中只需要minikube或dev命名空间。


-1
投票

看起来另一个应用程序正在您的localhost Similar reported issue上的端口27017上运行

快速检查linux / mac:

telnet 127.0.01 27017

检查日志文件:

docker logs serviceone_service

© www.soinside.com 2019 - 2024. All rights reserved.