【发布时间】:2020-04-29 05:11:04
【问题描述】:
我已经设置了一个 Spring Boot API,它在运行 MongoDB 的情况下执行 CRUD 操作。 我需要使用 GitLab 自动在托管 MongoDB 的 CI 上运行命令
mvn clean install -B
和
mvn clean test
来自 .gitlab-ci.yml。
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:834) ~[na:na]
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:na]
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) ~[na:na]
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) ~[na:na]
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) ~[na:na]
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403) ~[na:na]
at java.base/java.net.Socket.connect(Socket.java:609) ~[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
在运行 mvn clean install 之前寻找 .gitlab-ci.yml 文件来执行 Mongo 服务器实例化和数据库创建
当前.gitlab-ci.yml
image: maven:3.6-jdk-11
stages:
- build
cache:
paths:
- target/
services:
- mongo:latest
build:
stage: build
script:
- "mvn clean install -B"
artifacts:
paths:
- ./target/*************
【问题讨论】:
-
您在应用程序属性中使用的数据库 URL 是什么?很可能您需要将 localhost 更改为
mongo以使其在 gitlab-ci 中工作... -
我使用`spring.data.mongodb.repositories.enabled=true merlot.target.db.mongo.uri=mongodb://mongo:27017/
server.port=8095` -
gitlab runner 怎么样?是 docker runner 吗?
标签: mongodb spring-boot api docker gitlab