У меня были проблемы с подключением mongoDB на этапе тестирования Jenkinsfile.Базовое изображение - изображение монго из dockerhub.
Мой модульный тест сначала пытается подключиться к mongoDB с:
mongoose.connect(mongodb://localhost:27017/datastore_test, options);
, но завершается неудачно с:
MongoNetworkError: не удалось подключиться к серверу [localhost: 27017] при первом подключении [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
Я также пробовал с 'mongodb://mongo:27017/datastore_test'
, но безуспешно.
Есть ли какие-то хитрости или предостережения о том, как подключитьсяв базу данных во время конвейера CI с докером?
Вот как выглядит мой Jenkinsfile:
pipeline {
agent {
docker {
image 'myusername/mongonode:latest'
args '-p 3000:3000'
}
}
environment {
CI = 'true'
}
stages {
stage('Build') {
steps {
sh 'npm install'
}
}
stage('Test') {
steps {
sh 'npm test'
}
}
stage('Deliver') {
steps {
sh './jenkins/scripts/deliver.sh'
input message: 'Finished using the web site? (Click "Proceed" to continue)'
sh './jenkins/scripts/kill.sh'
}
}
}
}
Редактировать: Вывод docker inspect 8ad397858ecd | grep IP
docker inspect 8ad397858ecd | grep IP
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"IPAMConfig": null,
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,