Соединение с базой данных Jenkins и база данных mongoose во время модульных тестов: ECONNREFUSED - PullRequest
0 голосов
/ 12 декабря 2018

У меня были проблемы с подключением 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,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...