Yarn build를 해보자
젠킨스 설치가 끝나고 CD설정을 위해 Nodejs플러그인부터 설치를 해주었습니다.
플러그인을 설치하고 재시작 해준 다음 Global Tool Configuration에 가서 플러그인 설정을 해줍니다.
NodeJS항목 가서 이름 적당히 짓고 NodeJS 버전을 선택해줍니다. (2022.12.15.기준 18.12.1LTS) 그리고 yarn을 쓸 것이기 때문에 yarn도 추가해줍니다.
그다음 새로운 파이프라인 프로젝트를 생성해서 깃이랑 연결해줍니다. Project url에 깃허브 레포 주소 입력해주고
아래 빌드 트리거에 깃허브 훅 트리거에 체크해줍니다.
Pipeline script from SCM을 선택하고 레포지토리 URL에는 깃허브 레포 HTTPS URL .git으로 끝나는 주소를 넣어줍니다.
빌드 트리거 설정할 브랜치 적당히 골라주고
파이프라인 텍스트를 이렇게 빌드까지만 만들고 저장한다음 빌드를 돌려봅시다. (Jenkinsfile 만들어서 깃헙에 푸시)
이런 느낌으로 돌렸더니 Jenkins가 엄청 느려지고 페이지 로딩이 안됐습니다. e2-micro가 성능이 안좋기 때문에 그런가보다 했는데 3시간 4시간이 지나도 접속이 안됐습니다.
메모리 부족 때문인가?
GCP의 e2-micro 메모리가 1GB밖에 되지 않기 때문에 혹시 메모리 부족때문에 그런가 생각이 들어서 메모리 스왑 설정을 해보았습니다. aws공식 사이트에도 소개되어 있었습니다.
https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-swap-file/
스왑 파일을 사용하여 Amazon EC2 인스턴스의 스왑 공간으로 메모리 할당
닫기 John 씨의 동영상을 통해 자세히 알아보기(3:37)
aws.amazon.com
그래서 여기에 나온대로 진행을 해보았습니다.
1. 루트에 스왑 파일 생성
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32
// bs는 블록 크기
// count는 블록 갯수 여기서는 4GB 할당
2. 스왑 파일의 권한 변경
$ sudo chmod 600 /swapfile
3. 리눅스 스왑 영역 설정
$ sudo mkswap /swapfile
4. 스왑 공간에 스왑 파일 추가
$ sudo swapon /swapfile
5. 프로시저가 성공적인지 확인
$ sudo swapon -s
6. /etc/fstab 파일을 편집하여 부팅 시 스왑 파일을 시작
$ sudo vi /etc/fstab
마지막줄에 다음 라인 추가
/swapfile swap swap defaults 0 0
이렇게 하고 free 명령어로 확인해보면 스왑 메모리가 할당된 것을 확인할 수 있습니다.
문제 해결됨!
이제 빌드를 돌리니까 느리긴 하지만 정상적으로 종료되는 것을 확인할 수 있었습니다. aws EC2 t2.micro에서도 동일한 증상이 발생을 하기 때문에 VPC 사양을 더 늘리거나 이렇게 스왑 메모리 설정을 하면 됩니다.
'GCP' 카테고리의 다른 글
Google Cloud Platform VM 인스턴스에 jenkins 설치하기 삽질(도커엔딩) (0) | 2022.12.13 |
---|