代码之家  ›  专栏  ›  技术社区  ›  Mohamed Adel

使用jenkins运行并行docker容器并在这些容器中运行脚本

  •  0
  • Mohamed Adel  · 技术社区  · 7 年前

    我正在研究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') {
      
      }
      

      }

    0 回复  |  直到 7 年前
    推荐文章