And Brain said,

Jenkins, CI/CD 파이프라인의 지휘관 본문

IT/Jenkins

Jenkins, CI/CD 파이프라인의 지휘관

The Man 2022. 12. 23. 19:03
반응형


오늘은 Github 소스를 Jenkins를 이용하여 Docker 컨테이너로 생성하는 CI/CD 파이프라인에 대해 간략히 알아보겠다.


일단 기본적인 Docker 네트워크를 만들고 나는 기존의 컨테이너와 이미지들을 전부 삭제했다.

// Docker Network 생성하기
$ docker network create --gateway 172.18.0.1 --subnet 172.18.0.0/16 msa-network

// container 전체 삭제
$ docker rm -f $(docker ps -qa)

// image 전체 삭제
$ docker rmi $(docker images -q)



이제 Docker-compose.yml 파일을 만들어 docker-compose를 이용하여 Jenkins를 컨테이너로 띄워보자.

version: '3.9'
  
services:
    jenkins:
        container_name: jenkins
        image: jenkins/jenkins
        volumes:
            - ./data:/var/jenkins_home
            - /var/run/docker.sock:/var/run/docker.sock
        ports:
            - 8080:8080
        privileged: true
        user: root
        restart: always
        environment:
         TZ: "Asia/Seoul"

networks:
    default:
        external:
            name: msa-network

기본적인 Jenkins 내부 세팅은 나의 이전 포스팅을 참고해주길 바란다.

https://theworldaswillandidea.tistory.com/53

 

[Jenkins] Jenkins, Come here!

Jenkins? Jenkins는 빌드를 자동화시키기 위해 사용한다. 요즘 서버 개발에 푹 빠져서 Jenkins 맛만 보려했는데 자동화도구라는 말이 무색하게 어려웠다. 그래서 오늘은 Jenkins 세팅까지만 알아보도록

theworldaswillandidea.tistory.com



이제 Github에서 Access Token을 발급받도록 하자.

Settings → Developer settings → Generate new token



이렇게 세팅해준뒤

다시 Jenkins로 돌아가

Jenkins 관리 → Manage Credentials → Add credentials


Secret text 선택 후

Secret에 토큰값 입력

ID는 임의로 지정




다시 Add credentials

Git 계정 정보를 입력하고 Username에 본인 Github ID Password에 본인 Github Pswd

ID는 임의로 지정해준다.



이제 Dashboard → Jenkins 관리 → Global Tool Configuration



Jenkins PipeLine

Dashboard → 새로운 Item



Pipeline 선택 후 생성

Dashboard → jenkins-pipeline → Configuration



Pipeline 항목에서 Pipeline Syntax 클릭하여 Pipeline 스크립트를 생성하고 복사한다.

 


복사한 스크립트는 파이프라인 스크립트 내에 저런 식으로 붙여준다.


이후 젠킨스 컨테이너 내에 Docker-ce-cli 설치, Docker 개인 registry 생성, Docker —insecure-registry 설정까지 해주고

groovy script로 작성하여 파이프라인을 구축해주면 된다.


실패하고 해결해가면서 하나하나씩 파이프라인을 단계별로 구축해나가면 정말 게임하는 것처럼 재밌을 것이다.

다음엔 실제로 파이프라인 구축에 사용한 groovy 코드들을 통해 좀 더 자세히 알아보는 시간을 갖도록 하자.


Thanks for watching, Have a nice day.

 

반응형

'IT > Jenkins' 카테고리의 다른 글

Jenkins, Publish over SSH; 원격 서버 배포  (2) 2023.02.19
Jenkins, CI/CD 파이프라인의 지휘관 - [2]  (0) 2022.12.25
[Jenkins] Jenkins, Come here!  (0) 2022.09.26
Comments