Pipeline(Jenkinsfile)으로 병렬(병렬) 처리를 실행한다.



모두 keita69sawada입니다.

Jenkins를 사용하여 Docker 이미지를 모두 다시 만들고 싶을 수 있습니다.
예를 들어,
1. 공식 OS 이미지 + 보안 패치 = My OS 이미지
1.2. My OS 이미지 + Tomcat (미들웨어) = My Tomcat 이미지
1.3. My OS 이미지 + Postgres (미들웨어) = My Postgres 이미지
      :
와 같이 공식 보안 패치가 업데이트되면,
모두 미들웨어를 다시 만들어야합니다.
Docker 이미지를 하나하나 시리얼 처리로 작성하면 시간이 걸리고 어떻게 되나요?

그럼, 「병렬(병렬) 처리를 해보자!」라고
성게는이 기사입니다.

대상 독자


  • Jenkins를 사용하여 CI를 원하는 사람.
  • Jenkinsfile을 사용하여 병렬 (병렬) 처리하고 싶은 사람.

  • 전제 조건


  • GitHub등에서 Jenkinsfile을 관리·제휴할 수 있는 사람.

  • 절차



    1. Jenkinsfile 만들기



    parallel 블록은 stage의 선두에 기재합시다.
    parallel 블록이 선두가 아닌 경우 에러가 됩니다. ※자세한 것은 아래의 주의점 참조

    Jenkinsfile
    pipeline {
        agent any
        stages {
            stage('Build') {
                steps {
                    parallel (
                        "tomcat" : {
                            echo 'done'
                        },
                        "postgress" : {
                            echo 'done'
                        }
                    )
                }
            }  
        }
    }
    

    2. GitHub와 같은 jenkinsfile을 업데이트하고 Jenkins의 Job을 실행합니다.



    3. 실행 결과



    Jenkins Blue Ocean 의 화면에서 보면, 병렬 처리되고 있는 것을 알 수 있습니다.



    주의점



    parallel 블록이 처음이 아니면 오류가 발생합니다.

    오류 내용
    org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
    WorkflowScript: 7: Invalid step "parallel" used - not allowed in this context - The parallel step can only be used as the only top-level step in a stages step block @ line 7, column 17.
                       parallel (
                       ^
    

    NG
    pipeline {
        agent any
        stages {
            stage('Build') {
                steps {
                    echo "NG"  // ★★★ parallelブロックはStepsの先頭でないとNG!!
                    parallel (
                        "tomcat" : {
                            echo 'done'
                        },
                        "postgres" : {
                            echo 'done'
                        }
                    )
                }
            }  
        }
    }
    

    참고 URL


  • Jenkins blue ocean
    htps : ///지킨킨 s. 이오 / p 로지 cts / b 에오 세안 /
  • 좋은 웹페이지 즐겨찾기