본문 바로가기
DevOps/CI_CD

DevOps) CI/CD 구현하기 Jenkins(젠킨스) 자동 베포 구현하기 (10)

by 개발이 체질인 나그네 2022. 4. 18.
반응형

 

 

이전 실습을 통해 Docker에 Node.js로 구축한 백엔드 서버를 이미지로 만들어 서버에 베포 했습니다.

 

하지만, 코드가 수정됬을 때, 자동으로 합쳐지고, 다시 베포되는 과정이 아직 불편하기에, 

이를 자동으로 해주는 Jenkins를 구현해보겠습니다.

 

 

(1)

/home/ubuntu

sudo docker pull jenkins/jenkins

 

Docker Hub에는 Jenkins 이미지가 저장되어 있어서, pull 명령어를 통해 가져와 설치 할 수 있습니다.

 

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

 

인바운드 규칙에서 8080 포트를 열어주고

Docker run으로 구동시켜주면

 

 

이렇게 내 서버에 Junkins가 8080포트에서 돌아가고 있는걸 볼 수 있습니다.

이때 처음으로 입력할 비밀번호는 Docker 실행 시 Log에 찍히게 됩니다.

 

 

docker ps -a
// jenkins 컨테이너 ID 확인 후
docker logs [ 컨테이너 ID ]

 

 

위 코드로 logs를 조회 후, 쭉내리다 보면 저렇게 비밀번호가 나오게 됩니다.

 

 

 

순서대로 진행하다보면 위 Admin 계정 생성이 나오는데,

계정 만들어 주시고 잘 기억해주세요.

 

 

이런 페이지가 나오면 성공적으로 서버에 젠킨스를 설치 하신겁니다.

 

 

(2)

 

젠킨스 컨테이너에는 현재 Docker가 설치되어 있지 않기 때문에,

CI/CD를 위해 예약을 걸어놔도, Docker코드를 실행시킬수가 없습니다.

 

docker exec -it [컨테이너 ID] /bin/bash // 젠킨스 서버에 터미널 접속

// docker 압축 파일 설치
curl -fsSLO https://get.docker.com/builds/Linux/x86_64/docker-17.04.0-ce.tgz

// 압축 해제
tar xzvf docker-17.04.0-ce.tgz 

...

// 압축 해제한 파일 local로 옮겨 Global로 사용하기
mv docker/docker /usr/local/bin

// 압축 파일 삭제(용량 차지하니까 삭제해줍시다.)
// rm -r docker docker-17.04.0-ce.tgz

 

cd /home // home폴더로 이동

// git에 접근할 계정 정보 환경변수로 설정
git config --global credential.helper cache 


git clone [ git repository 주소 ]


git pull

 

Username은 github 아이디를 입력해주시고,

Password는 Github에서 제공하는 Personal Access Token을 넣어주면 됩니다.

 

 

docker login

 

도커 또한 사용해야하기 때문에, Docker Hub에서 계정을 만들어 로그인해주세요.

 

 

cd /home/[Git Repository 파일 명]
git pull
docker rm -f [ 실행중인 docker 명 ] || true
docker run -d --rm -p 3000:3000 -p --name [실행 시킬 도커 명] [도커 이미지 이름]
반응형

댓글