반응형

목차

1. 개발환경

2. Jenkins 설치, 실행

3. Jenkins 설정

4. ngrok 설정

5. webhook 설정

6. 테스트

 

 

1. 개발환경

Docker 25.0.2

Ubuntu 20.04.6

 

 

 

 

2. Jenkins 설치, 실행

docker image pull jenkins/jenkins:jdk17

 

우분투에 다음 명령어를 사용해서 젠킨스를 설치한다. jdk버전은 본인의 프로젝트에 맞게 설치하면 된다.

 

 

2-1. Jenkins 실행

vim docker-compose.yml

위 명령을 사용해서 docker-compose.yml을 텍스트 에디터로 실행해 준다.

 

 

 

다음과 같이 설정해 준다.

기본포트는 8080이며 다른 포트와 겹칠 가능성이 있어서 8180으로 포트포워딩 해줬다.

 

 

 

docker-compose up -d

그 뒤 다음 명령어를 사용해 docker-compose를 실행해 준다.

 

 

 

정상적으로 구동 중인 모습

 

 

 

 

3. Jenkins 설정

설정해 둔 포트인 8180을 통해 접속하면 Jenkins가 뜬다. 만약 설치하라는 창이 나오면 2가지의 선택지가 뜬다. 여기서는 왼쪽의 선택지를 택해주면 된다.

이제 위의 사진에서 <+ 새로운 Item>을 클릭해 준다.

 

 

 

 

이름을 설정해 주고 Freestyle project를 선택한 뒤 제일 하단의 OK를 눌러준다.

 

 

 

 

이 화면으로 넘어오게 된다.

 

 

 

 

두 가지를 선택해 줄 것이다.

소스코드 관리는 None -> Git으로 변경

 

빌드유발은 GitHub hook trigger for GITScm polling을 체크해 준다.

 

 

 

 

 

Git을 선택하게 되면 다음 화면이 뜬다.

Repository URL에는 본인의 프로젝트 URL

Credentials에는 본인의 토큰을 넣어준다. (추후 설명)

Branches to build에는 Push가 일어났을 때 빌드할 브랜치명을 입력해 준다.

 

 

 

 

Credentials의 설정법은 하단의 +Add를 눌러주고 Jenkins를 클릭한다.

 

 

 

 

Kind탭에서 본인이 하고 싶은 방식으로 인증을 해주면 된다.

 

 

 

 

Secret text를 선택해 주고 토큰을 만들어 값을 입력해 줬다.

Secret에는 본인의 토큰키

ID는 사용할 아이디를 입력해 준다.

Description은 생략해도 무방하다. 필요하면 설명을 적어준다.

 

 

 

 

 

Git에서 액세스 토큰을 하나 만든 후 권한을 부여했다.

 

 

 

 

4. ngrok 설정

설정이 되어있다면 넘어가도 된다.

아니라면 아래 링크를 참고하여 설치하고 5번으로 넘어간다.

https://ngwdeveloper.tistory.com/163

 

[Linux] ngrok 설치하기

ngrok 설정Ngrok은 로컬 개발 환경에서 인터넷을 통해 웹 애플리케이션에 안전하게 접근할 수 있도록 해주는 도구이다. 보안 연결을 통해 인터넷에서 서버를 실행할 수 있으며, 웹 애플리케이션을

ngwdeveloper.tistory.com

 

 

 

 

5. webhook 설정

Jenkins를 사용할 레포지토리의 설정에 들어간다. 웹훅이라는 탭을 클릭한다.

 

 

 

 

추가하기 버튼을 누른 뒤 본인의 ngrok 주소 + 뒤에 github-webhook을 추가해 준다. (git, github 사용자 모두 동일)

 

 

 

 

그 뒤 저장을 해준 뒤 웹훅 목록에 추가되어 있는지 확인해 준다.

 

 

 

 

 

6. 테스트

Jenkins에 설정해 둔 레포지토리의 브랜치에 push를 날려본다.

 

날려본 뒤 docker의 Jenkins로그를 확인해 본다.

각 줄의 설명이다.

1. 레포지토리에 대한 push 이벤트가 수신됨. ngrok을 통해 젠킨스에게 전달

2. 젠킨스가 Job을 트리거하도록 push이벤트를 전달

3. 젠킨스가 변경사항을 감지함. 빌드를 트리거함. 

 

 

 

 

 

빌드가 완료되면 다음과 같이 정보를 확인할 수 있다.

시작된 위치, 빌드 시간, git repository, branch 정보, 변경된 커밋등을 알 수 있다.

 

반응형

'공부메모 & 오류해결 > Infra' 카테고리의 다른 글

[Linux] ngrok 설치하기  (0) 2024.05.17
[MSA] MSA란 무엇일까?  (1) 2024.04.26

+ Recent posts