회사에서 강의를 지원해줘서 무엇을 들을까 고민하다가
프로젝트에서 젠킨스를 이용하고 있기도 하고,
인프라 영역은 손도 안대봐서 CI/CD를 배워보고자 한다 : )
1. docker 다운
https://docs.docker.com/desktop/install/mac-install/
맥에서 설치하는 경우 MacOS 12버전부터 사용 가능하다고 경고가 뜰 수 있다.
나도 원래 11버전을 쓰고 있었는데, 이 경로에서 Sonoma(14버전)으로 업데이트 했다. 약 1시간이 걸린다.
2. jenkis 받아오기
도커 허브에서 jenkins를 받아올 것이다.
https://hub.docker.com/r/jenkins/jenkins
2-1) 젠킨스 이미지 불러오기
터미널에서 아래 명령어를 입력한다.
docker pull jenkins/jenkins
2-2) 젠킨스를 컨테이너 형태로 기동시키기
명령어는 4가지 타입이 있다.
ver1. v(볼륨)마운트를 사용하지 않는 명령어
docker run -p 8080:8080 -p 50000:50000 --restart=on-failure jenkins/jenkins:1ts-jdk11
ver2. v(볼륨)마운트를 사용하는 명령어
docker run -p 8080:8080 -p 50000:50000 --restart=on-failure\
-v jenkins_home:/var/jenkins_home jenkins/jenkins:1ts-jdk11
ver3. 컨테이너 이름 설정이 추가된 명령어
docker run -p 8080:8080 -p 50000:50000\
--name jenkins-server\
--restart=on-failure jenkins/jenkins:1ts-jdk11
ver4. v(볼륨)마운트를 사용하는 명령어
docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080\
-p 50000:50000 --restart=on-failure jenkins/jenkins:1ts-jdk11
명령어를 해석해보자면 다음과 같다.
2-2-1) 퍼블리셔 옵션 (-p)
컨테이너 내부에 있는 포트를 컨테이너 바깥으로 있는 환경에 어떻게 접속해서 사용할 것인지를 나타낸다.
예를 들어 -p 8080:8080은 컨테이너 외부에서 8080이라는 포트를 사용하면 컨테이너 내부로 8080 접속을 시켜주겠다는 의미이다.
2-2-2) --restart=on-failure
fail이 되었을 경우 restart를 시켜준다.
2-2-3) jenkins/jenkins
도커에서 사용할 수 있는 젠킨스 계정 이름과 레포지토리 이름이다.
2-2-4) lts-jdk11
사용하고자 하는 태그의 이름이다.
lts-jdk11버전을 쓰겠다는 의미다.
2-2-5) -v jenkins_home:/var/jenkins_home
pc에서 어떠한 디렉토리하고 도커 내부에 있는 디렉토리를 연결(마운트)할 것인지에 대한 설정이다.
마운트 작업을 하지 않을 경우 도커 내부에서 발생된 데이터는 도커 내부에 저장된 것이기 때문에 도커가 삭제되면 데이터들이 함께 없어진다. 이런 이유로 도커 내부에서 발생한 데이터를 pc 디렉토리에 저장하기 위해 마운트를 하는 것이다.
2-2-6) --name
만드는 컨테이너에 이름을 부여하겠다는 것이다.
설정하지 않으면 도커가 랜덤으로 이름을 설정한다.
2-2-7) -d (detach 모드)
현재 실행하고 있는 콘솔(터미널)과 분리해서 실행하겠다는 의미이다. 백그라운드 형태로 기동하겠다는 의미이다.
도커 실행 시 컨테이너 아이디만 출력되고, 기타 로그는 다른 커맨드를 이용해야 한다.
현재 터미널을 명령어를 치는 용도로 계속 사용해야하기 때문이 ver4로 기동할 것이다.
2-3) 젠킨스를 컨테이너 형태로 기동 현황 확인
docker ps
Up 상태가 확인되면 정상적으로 기동되고 있는 것이다.
다른 상태(created, exit)이면 로그를 통해 원인을 파악해야 한다.
3. jenkis 설정
3-1) 젠킨스 접속
http://나의서버아이피:8080(젠킨스 기동 시 적었던 포트번호)를 url에 입력한다.
나는 http://127.0.0.1:8080/ 으로 접속했다.
초기 비밀번호는 도커 젠킨스 이미지 받아올 때 나왔지만 확인하지 못했다면, 아래 명령어를 통해 확인한다.
docker logs jenkins-server
b9e475a32d324d8fb~~~~~ 이런 비밀번호가 뜰 것이다.
3-2) 젠킨스 플러그인 설치
비밀번호 입력 후 나오는 플러그인 설치 페이지에서 1번째 버튼을 눌러 모든 플러그인을 설치한다.
약 2~3분이 소요된다.
3-3) 젠킨스 초기 관리자 계정 생성
admin 계정을 만들어 사용할 것이다.
3-4) start using jenkins 클릭
모든 과정이 끝나고 해당 버튼을 누르면 젠킨스 서비스를 이용할 수 있을 것이다.
3-5) jdk & maven 설정
jenkins 관리 > Tools로 들어가면 설정할 수 있다.
도커를 이용해 젠킨스를 기동시켰다면 아래 블로그를 통해 JAVA_HOME 경로를 확인할 수 있다.
대부분 /opt/java/openjdk이다.
4. jenkis 화면 소개
4-1) 새로운 item
item : 젠킨스에서 사용하고 있는 작업의 최소 단위이다.
4-2) 사람
계정과 관련된 메뉴이다.
4-3) jenkins 관리
jdk와 maven/gradle 설정을 관리하는 메뉴이다.
4-4) 빌드 실행 상태
현재 아이템의 실행 여부, 실행 중에 어떤 로그와 결과를 가지는지 알 수 있다.
4-5) 빌드 대기 목록
현재 실행된 아이템 다음에 실행될 아이템들이 보인다.
'INFRA > CICD' 카테고리의 다른 글
SSH 서버에서 사용할 수 있는 도커 컨테이너 만들기 (0) | 2024.06.23 |
---|---|
젠킨스 자동 빌드 환경 구성하기 [Poll SCM] (3) | 2024.06.19 |
톰캣 서버에 프로젝트 배포 (0) | 2024.06.19 |
톰캣 [port 변경 / ip 제한 해제 / 유저추가] (0) | 2024.06.18 |
Git에서 코드 가져와서 빌드하는 법 (0) | 2024.06.16 |