Docker와 Jenkins로 NodeJs 프로젝트의 CI/CD Pipeline 구축하기 (with AWS EC2 Ubuntu) - (1)

Seung Hyeon ·2023년 10월 22일
0

백엔드

목록 보기
6/14
post-thumbnail

AWS EC2 ubuntu에 이미 도커를 설치했다는 전제로 아래 과정을 실행한다.
이번 포스트는 Jenkins를 설치하고 서버 구축까지 완료하는 방법까지만 작성했다.

Jenkins 설치 및 서버 구축

  1. 도커 허브에 저장되어있는 jenkins/jenkins 이미지를 pull한다.

    $ docker pull jenkins/jenkins

    https://hub.docker.com/r/jenkins/jenkins

  2. jenkins 컨테이너를 관리자(root)권한으로 생성한다.

    $ docker run --name jenkins -d -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock -v jenkins_home:/var/jenkins_home -u root jenkins/jenkins
    

    ※ 8080이 jenkins 기본 포트

    • 관리자 권한으로 생성해야 도커 설치가 가능
    • -v /var/run/docker.sock:/var/run/docker.sock : 호스트의 Docker 소켓을 컨테이너 내부의 Docker 소켓과 공유하는 옵션. Docker 컨테이너 내부에서 다른 컨테이너를 실행하거나 다룰 수 있도록 함.
    • -v jenkins_home:/var/jenkins_home : 호스트의 디렉토리 jenkins_home을 컨테이너 내부의 /var/jenkins_home 디렉토리와 공유하는 옵션. 해당 디렉토리는 Jenkins 설정 및 데이터를 저장하는 데 사용.
  3. {EC2 IP주소}:8080 으로 접속한다.

    • password는 $docker logs [jenkins 컨테이너ID] 입력하면 아래와 같이 나오는데 화살표 부분을 입력하면 된다.
  4. Install suggested plugins 클릭하여 Plugin 설치(자동)

  5. Jenkins 컨테이너에 Docker를 설치하는 방법

    • 테스트로 Jenkins웹에서 '새 작업'을 누르고 docker pull & docker run을 통해 빌드 작업을 해보면 아래와 같은 docker not found 에러가 뜬다. 이는 jenkins에 아직 도커가 설치되어있지 않았다는 뜻이다.
      ※ 이미지 출처 : 동빈나 유튜브

      따라서 Jenkins 컨테이너에 Docker를 설치해야한다.
      jenkins 컨테이너 실행

      $ docker exec -it --user root jenkins /bin/bash 

      docker 설치
      docker-compose 설치 (필자는 docker-compose를 통해 빌드할 것이기 때문)

      $ curl https://get.docker.com/ > dockerinstall && chmod 777 dockerinstall && ./dockerinstall
       $ apt install docker-compose

      ▲ jenkins 컨테이너에 성공적으로 도커가 설치된 것을 확인할 수 있다.

      docker.sock 파일의 권한을 666으로 변경하여 그룹 내 다른 사용자도 접근 가능하게 변경

      $ exit  // 컨테이너 접속해제 후 진행
      $ sudo chmod 666 /var/run/docker.sock

 

다음 포스트에서는 본격적으로 Pipeline script을 작성하여 Jenkins CI/CD 파이프라인을 구축해보겠다.

 

※ 참고
[Jenkins 로 도커 이미지 Build & Push 자동화하기]

[동빈나 유튜브]도커(Docker) 활용 및 배포 자동화 실전 초급 ⑩ Jenkins를 이용해 Docker 프로젝트 빌드해보기

profile
안되어도 될 때까지

0개의 댓글