【发布时间】:2021-11-17 02:54:54
【问题描述】:
我正在尝试使用 mongodb 后端对 Spring Boot Web 应用程序进行 dockerize。 我运行 mongo 并使用以下命令将其映射到主机:
docker run -p27017:27017 --name my-mongodb-container -d mongo:latest
我已经用 Spring Boot 代码构建了一个 jar,并且能够成功运行它。它插入并打印一些数据。 现在我使用以下 Dockerfile 对这个 jar 进行 dockerize
FROM adoptopenjdk/openjdk11
EXPOSE 8080
COPY target/*.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]
我将 docker 容器运行为:
docker run -p 4444:8080 --name mydoctest --link my-mongodb-container doc40
实例出现,尝试连接到 mongo 失败。但是应用程序被加载,因为我有另一个正常运行的 url。但是,它只返回硬编码数据。
我在控制台看到的错误
2021-09-23 17:13:02.725 INFO 1 --- [ main] org.mongodb.driver.cluster : Cluster created with settings {
hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms'}
2021-09-23 17:13:02.824 INFO 1 --- [localhost:27017] org.mongodb.driver.cluster : Exception in monitor thread whi
le connecting to server localhost:27017
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[mongodb-driver-core-4.2.3.jar!/:na]
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:143) ~[mongodb-driver-cor
e-4.2.3.jar!/:na]
任何输入都非常受欢迎
【问题讨论】:
标签: java spring mongodb web-services dockerfile