0

我在 Jenkinsfile 测试阶段连接 mongoDB 时遇到问题。基础镜像是来自 dockerhub 的 mongo -image。

我的单元测试首先尝试通过以下方式连接到 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 管道期间使用 docker 连接数据库是否有一些技巧或注意事项?

这是我的 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,
4

0 回答 0