jenkins

5BRack·2023년 1월 26일
0

CS

목록 보기
3/5

CI/CD

  • CI : Continuous Integration, 지속적인 통합
  • CD : Continuous Delivery or Continuous Depolyment, 지속적인 배포

    CI : 즉 어플리케이션의 소스를 통합
    CD : 소스의 변경사항이 고객까지 배포

jenkins

  • jenkins는 ci/cd 파이프라인을 구성할 수 있는 도구이다.

docker에서 jenkins 설치

  1. docker image를 가져온다.
 docker pull jenkins/jenkins
  1. docker에서 jenkins 실행(jenkins 내부에서 docker를 사용하기 위해 docker.sock 파일 사용)
 docker run -d -p 8080:8080 -v /home/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -u root jenkins/jenkins

  • ip:8080 주소로 들어가면 해당 페이지가 나오게 된다.(jenkins default port는 8080)
  • jenkins는 프로세스를 시작할 때 로그로 패스워드를 보여준다
  1. 패스워드 확인
  • jenkins컨테이너의 로그를 확인한다.
docker ps -a
docker logs [컨테이너 ID]

  • 패스워드를 복사하여 로그인페이지에 붙여넣는다.

  • 로그인 완료
  1. Insall suggested plugins 를 클릭하여 플러그인을 설치한다.
  • 설치 완료 화면
  1. 관리자 계정 정보를 설정한다.

작업 만들기

  1. 좌측 새로운 Item 선택

  2. 작업명, 작업방식 선택

  • 작업명 입력
  • pipeline 선택
  1. General 설정
  • Do not allow concurrent builds : 연속적인 빌드 제한 설정
  • GitHub Project : 빌드할 프로젝트(DockerFile 포함)
  1. pipe script 작성

pipe-sciprt 작성

node {

  git poll: true, url:'https://github.com/Dohyun-98/jenkins-practice.git'

  withCredentials([[$class: 'UsernamePasswordMultiBinding',

     credentialsId: 'docker-hub',

     usernameVariable: 'DOCKER_USER_ID', 

     passwordVariable: 'DOCKER_USER_PASSWORD']]) { 

     stage('Pull') {

            git 'https://github.com/Dohyun-98/jenkins-practice.git' 

     }

      stage('Unit Test') {

      }

      stage('Build') {

            sh(script: 'docker-compose build app')

      }

      stage('Tag') {

            sh(script: '''docker tag ${DOCKER_USER_ID}/flask \

            ${DOCKER_USER_ID}/flask:${BUILD_NUMBER}''') }

      stage('Push') {

            sh(script: 'docker login -u ${DOCKER_USER_ID} -p ${DOCKER_USER_PASSWORD}') 

            sh(script: 'docker push ${DOCKER_USER_ID}/flask:${BUILD_NUMBER}') 

            sh(script: 'docker push ${DOCKER_USER_ID}/flask:latest')

      }

      stage('Deploy') {

          sh(script: 'docker-compose up -d production') 

      }

    } 

}

0개의 댓글

관련 채용 정보