공부/CI & CD

Jenkins로 CI/CD 구축하기 - (1) EC2 docker에 Jenkis 설치 및 SWAP 메모리 할당

son_i 2024. 8. 7. 02:52
728x90

Dockerfile을 만들었지만 아무 것도 안 써줌

 

Jenkins에 접속해서 Docker를 누르고 Docker Pull Command를 복사해서 터미널에 입력한다 !

https://www.jenkins.io/download/

 

Download and deploy

Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

www.jenkins.io

 

젠킨스 컨테이너 설치

$ sudo docker run -d --name jenkins -p 9090:9090 jenkins/jenkins:jdk11

-d : 컨테이너를 데몬으로 띄운다.

--name : 컨테이너 이름을 jenkins로 설정

-p 8080:8080 컨테이너 외부와 통신할 포트 : 내부적으로 사용할 포트를 포워딩 해준다.

 

초기 비밀번호 확인

docker logs jenkins

 

Jekins URL을 EC2의 탄력 IP주소로 설정한다.

localhost가 아닌 ec2의 탄력 IP 주소를 입력해주는 이유는 다른 PC에서 접속할 수 있도록 하기 위함이다.

 

간단한 CI 파이프라인 작성 후 빌드를 하니까 정말 많은 시간이 소요되고 빌드가 수행되는 것을 확인하지 못 했다.

따라서 Swap memory를 할당해보았다.

 

 

EC2에 swap 메모리 추가

//dd명령을 통해 Swap Memory 할당
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32
32+0 records in
32+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 65.6208 s, 65.5 MB/s

//swap 파일의 읽기 쓰기 권한 업데이트
$ sudo chmod 600 /swapfile

//Linux swap 영역 할당
$ sudo mkswap /swapfile
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=f2ba69f3-37c6-47f7-b3e8-0f5c81046752

//swap 공간에 파일을 추가하여 swap 파일을 즉시 사용할 수 있게 한다.
$ sudo swapon /swapfile

// 진행한 과정들이 잘 되었는지 확인한다.
$ sudo swapon -s
Filename                                Type            Size            Used            Priority
/swapfile                               file            4194300         0               -2

// /etc/fstab 파일을 편집하여 부팅시 스왑 파일을 활성화 한다.
$ sudo vi /etc/fstab

//파일 끝에 다음 줄을 추가하고 파일을 저장한 다음 종료한다.
/swapfile swap swap defaults 0 0

//free -m 명령어를 통해 Swap memory가 잘 할당됐는지 확인한다 !
$ free -m
               total        used        free      shared  buff/cache   available
Mem:             949         486         119           0         343         321
Swap:           4095           0        4095

잘 되었음 !

 

Swap 메모리 할당 후 무한 빌드 되지 않고 잘 동작하는 것을 확인하였다.

이제 파이프라인을 제대로 공부해서 CI CD를 구축해보도록 하겠다.

 

 


참고

https://velog.io/@appti/%EB%8F%84%EC%BB%A4%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8

 

스프링 부트 도커 이미지 생성 후 실행

스프링 부트 도커 이미지 생성 후 실행

velog.io

 

Jekins 무한 빌드 해결 - SWAP 메모리 할당

https://velog.io/@dumbveloper_100/AWS-EC2-%ED%94%84%EB%A6%AC%ED%8B%B0%EC%96%B4-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-Jenkins-%EC%8B%A4%ED%96%89%EC%8B%9C%ED%82%A4%EA%B8%B0

 

AWS EC2 프리티어 환경에서 Jenkins 실행시키기

aws

velog.io

 

https://velog.io/@kku64r/ec2freetier

 

[jenkins] AWS EC2 프리티어 jenkins build 멈춤 현상

지금 새벽 3시... 기업에서 받은 EC2 서버의 지원 기간이 끝나가 개인(팀)의 AWS EC2 프리티어 서버로 옮기는 작업을 했다.그런데 젠킨스의 build 시, 계속 멈춤 현상이 일어나고 콘솔창도 너무 느려서

velog.io

 

728x90