使用Jenkins运行并行Docker容器并将脚本运行到这些容器中

时间:2018-11-16 19:28:13

标签: docker jenkins

我正在Jenkins上尝试建立自定义环境以并行运行测试,首先我需要拥有数据库,并且对于每组测试都必须是独立的,所以我考虑使用多个具有Postgres DB的容器,然后使用脚本,但我面临2个主要问题:

  • 当尝试运行多个docker实例时,docker仅在最后一次崩溃时出现msg,它无法访问容器,但在本地计算机上我可以访问它 “要克服这个问题,我会停止并行运行,如果4个docker容器以串行方式运行,则可以正常运行”是否有解决方案?
  • 第二个问题是我想将脚本运行到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') {
    
    }
    

    }

0 个答案:

没有答案