我正在研究jenkins,试图构建一个定制的环境来并行运行测试,首先我需要有db,并且必须对每组测试进行单独处理,因此我考虑使用多个容器,每个容器都有postgres db,然后用脚本初始化它,但我面临两个主要问题:
-
当尝试运行多个Docker实例时,Docker在最后一个上崩溃,消息是它不能访问容器,但在本地计算机上我可以访问它
“为了克服这个问题,我停止并行,如果4个Dockers容器以串行方式运行,它就可以正常工作了”有解决方案吗?
-
第二个问题是我想在docker中运行脚本,所以在容器启动后,我想在其中运行initialize db,并等待它完成初始化后才运行测试
node {
stage('Clone Project') {
}
stage('Build Project') {
}
stage('Create Docker postgres DB') {
sh "docker run -p 54000:5432 --name db1 -d postgres:9.6"
sh "docker run -p 54001:5432 --name db2 -d postgres:9.6"
}
stage('Prepare DB for Tests') {
dir('database') {
parallel db1: {
sh "./reinitdb.sh test 54000"
}, db2 : {
sh "./reinitdb.sh test 54001 "
}
}
}
stage('Run Integration Tests') {
}
}