본문 바로가기

develop/server

[ERROR] GitLab pipeline pending (Job is stuck. Check runners.)

목차

  1. 이슈
  2. 원인
  3. 해결

이슈

gitlab-runner를 등록한 후 프로젝트의 소스코드를 수정해서 gitlab에 올렸는데 파이프라인의 상태가 pending에서 멈춰있음.

 

사용할 runner의 상태는 온라인으로 정상적으로 연결되어있는것을 확인했음.

 


원인

문제의 원인은 등록된 runner가 너무 많아서 stage를 실행할 때 어떤 runner를 실행해야할지 몰라서 발생한 이슈.

사용가능한 runner들

 


해결

각 stage를 수행할 runner를 선언해주면 된다.

각 stage 블럭에 tags로 runner의 태그를 작성해주면 작업을 수행할 runner를 지정해서 정상적으로 동작함.

stages:
    - test
    - build
    - push

variables:
    COMMIT_TAG: $CI_COMMIT_TAG
    COMMIT_BRANCH: ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}
    IMAGE_TAG: $CI_COMMIT_TAG
    HARBOR_URL1: https://10.10.5.66:444
    HARBOR_USERNAME1: admin
    HARBOR_PASSWORD1: tirmffhqjf1!
    HARBOR_PROJECT: nextti
    HARBOR_REPOSITORY_URI: 10.10.5.66:444/${HARBOR_PROJECT}
    HARBOR_REPOSITORY_NAME: mobile_framework_api/mobile_framework_api

test:
    stage: test
    tags:
        - mobile_framework	//[추가]
    script:
        - echo COMMIT_TAG - ${COMMIT_TAG}
        - echo COMMIT_BRANCH - ${COMMIT_BRANCH}
        - echo IMAGE_TAG - ${IMAGE_TAG}
        - echo HARBOR_REPOSITORY_URI - ${HARBOR_REPOSITORY_URI}
        - echo HARBOR_REPOSITORY_NAME - ${HARBOR_REPOSITORY_NAME}

build:
    image: gradle:8.8-jdk17
    stage: build
    tags:
        - mobile_framework	//[추가]
    variables:
        JAVA_TOOL_OPTIONS: -Dhttp:profiles.active=dev
    script:
        - gradle :api:clean :api:bootJar

push:
    image: docker:latest
    stage: push
    tags:
        - mobile_framework	//[추가]
    script:
        - echo ${HARBOR_REPOSITORY_NAME}:${IMAGE_TAG} ${HARBOR_REPOSITORY_URI}/${HARBOR_REPOSITORY_NAME}:${IMAGE_TAG}

 

성공


참고

https://velog.io/@jee-9/Gitlab-pipeline-pending-Job-is-stuck.-Check-runners.-%EC%98%A4%EB%A5%98

 

Gitlab pipeline pending (Job is stuck. Check runners.) 오류

gitlab-ci.yml 파일을 작성하고 pipeline을 확인해보면, 다음과 같이 pending 상태에서 멈춰있는 것을 확인할 수 있었다.나의 경우 gitlab runner를 추가하면 create runner에서 무한로딩이 걸렸는데, 폐쇄망에

velog.io