새소식

기술/Application

Jenkins Pipeline을 이용한 Docker Image Push

  • -

지난 글에 이어서 빌드된 이미지를 Docker Hub로 Push 해보려고 합니다.

 

빌드까지 정상적으로 이루어졌다면, jenkinsfile-build를 수정해주어야 합니다.

 

하지만 해당 글은 가이드이기 때문에 jenkinsfile-push라는 파일을 새로 생성하여 진행하겠습니다.

 

먼저 Docker-Hub의 인증정보를 입력해야 하기 때문에, Jenkins의 Credentials 메뉴로 이동합니다.

 

Jenkins->Credentials->global->Add Credentials

Credentials->global
인증정보 입력창

저는 예제로 이렇게 사용하겠습니다.

그 다음엔 이제 jenkinsfile-push를 생성해서 변경하여 줍니다.

 

주요 코드는 다음과 같습니다.

node {
     stage('Clone repository') {
         checkout scm
     }
     stage('Build image') {
         app = docker.build("teichae/jenkins")
     }
     stage('Push image') {
         docker.withRegistry('https://registry.hub.docker.com', 'docker-hub') {
             app.push("${env.BUILD_NUMBER}")
             app.push("latest")
         }
     }
 }




#변경점
     stage('Build image') {
         app = docker.build("teichae/jenkins") #Push Image 단계에서 빌드번호를 붙이기 때문에 옵션 제거
     }
     stage('Push image') {
         docker.withRegistry('https://registry.hub.docker.com', 'docker-hub') #업로드할 레지스트리 정보, Jenkins Credentials ID {
             app.push("${env.BUILD_NUMBER}") #image에 빌드번호를 태그로 붙인 후 Push
             app.push("latest") #image에 latest를 태그로 붙인 후 Push
     }
  }
}

해당 코드를 이제 Github에 업로드한 후 Pipeline Item에서 사용할 Script Path를 수정하여 줍니다.

이제 모든 설정이 완료되었습니다.

 

빌드를 시작합니다.

 

빌드 진행사항을 확인하면 요렇게 보입니다.

Docker Hub에 정상적으로 로그인 후 새로 생성한 이미지를 업로드하는 것이 확인됩니다.

 

이제 Docker Hub에도 확인해보면 업로드가 잘 된것이 보입니다.

7번이라는 빌드번호가 붙어서 업로드 되었고, 7번 이미지의 latest 태그를 하나 추가해서 업로드가 된 것이 확인됩니다.

 

Docker의 Private Repository를 통해서도 이와 같이 업로드할 수 있습니다.

 

Build까지의 과정을 잘 따라오신 분들이라면 충분히 여기까지 쉽게 따라오실 수 있을 것이라 생각됩니다.

 

이번 작업에 대한 코드는 https://github.com/teichae/jenkins를 통해 공개하고 있습니다.

 

궁금한 사항은 언제든 댓글 달아주시면 보는 대로 답변드리겠습니다. :)

 

다음은 AWS ECR에 Image를 Push 하는 방법에 대해 가이드해보도록 하겠습니다.

 

감사합니다.

'기술 > Application' 카테고리의 다른 글

Argo CD를 이용한 배포 (2)  (0) 2020.10.13
Argo CD 설치 (1)  (0) 2020.06.21
Jenkins Image 공유  (0) 2020.04.12
Jenkins Pipeline을 이용한 Docker Image Build  (6) 2020.04.11
Docker를 이용한 Jenkins 설치  (0) 2020.04.11
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.