젠킨스를 이용한 CI/CD
도커 컨테이너 설정 파일 생성
Section titled “도커 컨테이너 설정 파일 생성”-
설정파일을 생성할 디렉토리로 이동해서 docker-compose.yml 파일을 생성한다.
Terminal window touch docker-compose.yml -
설정 내용은 다음과 같다.
services:soc-jenkins:container_name: soc-jenkinsimage: jenkins/jenkins:ltsuser: rootrestart: alwaysports:- "8065:8080"volumes:- ./jenkins_home:/var/jenkins_homenetworks:- cicd_netnetworks:cicd_net:driver: bridgeexternal: trueinternal: true
젠킨스 애플리케이션 실행
Section titled “젠킨스 애플리케이션 실행”- 웹 브라우저에서 아래 주소를 입력한다.
http://localhost:8065
젠킨스 초기 설정
Section titled “젠킨스 초기 설정”-
처음 젠킨스를 실행하면 젠킨스에서 생성된 패스워드를 입력해야 한다.
-
다음으로 플러그인 설치에 대해 물어보는데 제안하는 플러그인을 선택하고 설치한다.
-
관리자 계정과 패스워드를 설정하고 계속 진행한다.
-
젠킨스 로그인을 마치고 초기 화면이 출력되면 완료된 것이다.
빌드 툴 설정
Section titled “빌드 툴 설정”- nodejs, pnpm 설치
- nodejs 플러그인 설치
- Dashboard -> Jenkins 관리 -> System Configuration -> Plugins -> Available plugins
NodeJS체크 ->Install버튼 클릭
- nodejs 설치
- Dashboard -> Jenkins 관리 -> Tools -> NodeJS installations ->
Add NodeJS버튼 클릭 - Name:
nodejs-22.10입력 - Install automatically 체크 -> Version 선택 ->
NodeJS 22.10.0선택 - Global npm packages to install ->
pnpm입력 Save버튼 클릭
- Dashboard -> Jenkins 관리 -> Tools -> NodeJS installations ->
- nodejs / pnpm 실행 확인
- 파이프라인을 추가하고 스크립트를 아래와 같이 작성한다.
pipeline {agent anytools {nodejs 'nodejs-22.10'}stages {stage('nodejs version') {steps {sh 'node --version'sh 'pnpm -version'}}}}
- 파이프라인을 실행하면 아래와 같은 출력을 확인할 수 있다.
[Pipeline] sh+ node --versionv22.10.0[Pipeline] sh+ pnpm -version10.5.2
- 파이프라인을 추가하고 스크립트를 아래와 같이 작성한다.
- nodejs 플러그인 설치
- JDK
- JDK 설치
- Dashboard -> Jenkins 관리 -> Tools -> JDK installations ->
Add JDK버튼 클릭 - Name:
jdk-${VERSION}입력 - Install automatically 체크 ->
Extract *.zip/*.tar.gz선택Download URL for binary archive항목에 JDK 다운로드 주소를 입력한다.Subdirectory of extracted archive항목에 압축을 풀었을때 생성되는 디렉토리명을 입력한다.
Save버튼 클릭
- Dashboard -> Jenkins 관리 -> Tools -> JDK installations ->
- JDK 실행 확인
- 파이프라인을 추가하고 스크립트를 아래와 같이 작성한다.
pipeline {agent anytools {jdk 'jdk-21'}stages {stage('JDK version') {steps {sh 'java -version'}}}}
- 파이프라인을 실행하면 아래와 같은 출력을 확인할 수 있다.
[Pipeline] sh+ java -versionopenjdk version "21.0.6" 2025-01-21 LTSOpenJDK Runtime Environment Corretto-21.0.6.7.1 (build 21.0.6+7-LTS)OpenJDK 64-Bit Server VM Corretto-21.0.6.7.1 (build 21.0.6+7-LTS, mixed mode, sharing)
- 파이프라인을 추가하고 스크립트를 아래와 같이 작성한다.
- maven
- TODO 미래의 나님이 해줄거임
- gradle
- JDK 설치가 필요하다. JDK 설치는 앞서 설명한 내용을 참고한다.
- JDK 버전에 맞추어서 gradle 버전을 선택해야 한다.
- gradle 설치
- Dashboard -> Jenkins 관리 -> Tools -> Gradle installations ->
Add Gradle버튼 클릭 - Name:
gradle-${VERSION}입력 - Install automatically 체크 ->
gradle 버전 선택 Save버튼 클릭
- Dashboard -> Jenkins 관리 -> Tools -> Gradle installations ->
- gradle 실행 확인
- 파이프라인을 추가하고 스크립트를 아래와 같이 작성한다.
pipeline {agent anytools {jdk 'jdk-21'gradle 'gradle-8.5'}stages {stage('Gradle version') {steps {sh 'java -version'sh 'gradle -v'}}}}
- 파이프라인을 실행하면 아래와 같은 출력을 확인할 수 있다.
[Pipeline] sh+ gradle -v------------------------------------------------------------Gradle 8.5------------------------------------------------------------Build time: 2023-11-29 14:08:57 UTCRevision: 28aca86a7180baa17117e0e5ba01d8ea9feca598Kotlin: 1.9.20Groovy: 3.0.17Ant: Apache Ant(TM) version 1.10.13 compiled on January 4 2023JVM: 21.0.6 (Amazon.com Inc. 21.0.6+7-LTS)OS: Linux 6.11.0-21-generic amd64
- 파이프라인을 추가하고 스크립트를 아래와 같이 작성한다.
- ant
- TODO 미래의 나님이 해줄거임
- JDK 설치
젠킨스 credentials 생성
Section titled “젠킨스 credentials 생성”- Dashboard -> Jenkins 관리 -> Security -> Credentials -> 목록에서
System클릭 ->Add domain버튼 클릭 - 먼저 도메인을 등록해야 하는데, 입력 항목은 다음과 같다.
- Domain name
- 도메인 이름을 입력한다. (예 - github)
- 도메인 이름을 입력한다. (예 - github)
- Description
- 형상관리 시스템이나 토큰정보를 입력한다. (예 - 토큰생성일, 토큰만료일)
Create버튼 클릭
- Domain name
- 새로 등록한 도메인에 credentials 정보를 등록한다.
- Dashboard -> Jenkins 관리 -> Security -> Credentials -> System -> 목록에서
새로 등록한 도메인을 클릭 Add Credentials버튼 클릭- New credentials ->
KindUsername with password항목을 선택한다.
- New credentials ->
ScopeGlobal (jenkins, nodes, items, all child items, etc)항목을 선택한다.
- New credentials ->
Username- (깃허브를 SCM 으로 사용하는 경우)깃허브 계정 id를 입력한다.
Treat username as secret항목을 체크한다.- New credentials ->
Password- 깃허브에서 발급받은 토큰을 입력한다.
- 6,7 단계가 정상적으로 수행되고 인증에 문제가 없는경우 오류 메시지가 사라진다.
- New credentials ->
ID- ID로 사용할 수 있는 유일한 값을 입력한다. (예 - github-token)
- New credentials ->
Description- 토큰과 관련된 정보를 입력한다.
Create버튼 클릭
- Dashboard -> Jenkins 관리 -> Security -> Credentials -> System -> 목록에서