- Today
- Total
개발하는 고라니
[Jenkins] Github 연동, push 후 빌드 자동화 본문
※ Environment
Platform: GCP(Google Cloud Platform)
OS: Debian GNU/Linux, 10 (buster)
Docker: 20.10.8
JDK: open-jdk 11
저번에 젠킨스를 설치했었는데, 로컬환경(Windows)에 도커 없이 war를 배포하는 것으로 설치했었다. 이번엔 좀더 나아가 GCP(Linux)에 Docker를 이용해 Jenkins 이미지를 받아 구동하고, 깃헙을 연동하는 작업을 한다. 그리고 최종 목표인 Intellj에서 코드작업 후 repository로 push 하면 자동으로 젠킨스가 빌드해주게끔 한다.
Linux에 도커를 설치하는 과정은 따로 다루지 않겠다.
Docker로 Jenkins Install
위의 docker hub에 가면 젠킨스를 받을 수 있다. 하지만 기존의 젠킨스 이미지는 deprecated되었으므로 jenkins/jenkins:lts로 풀 받는다
$ docker pull jenkins (X)
/* ------- */
$ docker pull jenkins/jenkins:lts (O)
$ docker run --name jks -d -p 7000:7000 -p 50000:50000 jenkins/jenkins:lts --httpPort=7000
/*
docker run : pull받은 이미지를 도커 컨테이너로 만든다.
-d : 백그라운드 실행
-p 7000:7000 : host의 7000포트로 오는 요청을 컨테이너 7000포트로 넘긴다.
--name jks : jks라는 이름의 컨테이너를 만든다.
--httpPort=7000 : 젠킨스 default 포트가 8080인데, 나는 7000포트로 실행한다.
*/
docker ps // 잘 만들어졌는지 확인
docker logs jks -f //로그 확인 (초기 패스워드 확인해야함)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e00d0721987 jenkins/jenkins:lts "/sbin/tini -- /usr/…" 7 minutes ago Up 7 minutes 0.0.0.0:7000->7000/tcp, :::7000->7000/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp, 8080/tcp jks
이제 설치하는 과정은 쉽다. http://IP주소:7000 로 가서 초기 비밀번호를 복사하고 넣어주면 인스톨 화면이 뜨는데, 그냥 Recommand 로 설치했다.
이렇게 하면 젠킨스가 정상적으로 잘 설치가 되었고, 이제 JDK, gradle 등 글로벌 설정을 해줘야하는데 이는 이전 포스팅에서 다뤘으므로 참고하길 바란다.
※ 주의사항
docker를 사용하므로 docker 컨테이너 안에 JDK를 잘 찾아서 기입해주어야한다.
$ docker exec -it jks /bin/bash //컨테이너의 내부를 bash shell로 들어간다.
$ echo $JAVA_HOME //자바 환경변수 위치 확인
1) 환경변수가 있을 떄
예를들어 /opt/java/openjdk 이면 그대로 JDK 설정하는 곳에 기입
2) 환경변수가 없을 때
$ javac -version //자바가 깔려있는지 확인
$ which javac //javac의 위치 확인
$ readlink -f [which javac의 결과물] // A
$ vi /etc/profile
맨 하단에 export JAVA_HOME=A 결과물 기입
SSH 재접속 후 echo $JAVA_HOME
Jenkins 시스템 설정
여기서 Github 설정과 E-mail을 설정할 것이다. (E-mail은 아직 설정을 못했다..왜 안되는지 모르겠어서 ㅎㅋ)
시스템 설정에 들어와서...
Kind : Secret text
Scope : Global
Secret : Token 입력
ID : Credential을 구분하기 위한 ID
[Description] : 설명
테스트를 눌렀을 때 위와 같이 뜨면 성공이다.
Create Job & Connect Github
[Dashboard] - [new Item]
freestyle 프로젝트를 만들고 구성에 들어가서 github, git, gradle을 설정해주자.
※ Github Secret Token
혹시 깃허브 Access token이 없다면 하나 만들고 가도록 하자.
이제 토큰을 발급받으면 되는데, 생성되는 토큰은 다시는 안나타나므로 별도로 저장해두어야한다.
* github
* git
아까와 다르게 token을 입력하는게 아닌 ID와 Password를 입력해주자.
* gradle
여기까지 잘 설정이 되었다면, Build Now를 눌러 빌드를 시도해보자.
기분좋은 Green sign이 뜨며 빌드 성공을 알린다!
Push -> Build Automation
이제 진짜 다왔다. 하나만 설정해주면 된다. Github로 가서 젠킨스에 연동한 리퍼지토리로 가보자.
이렇게 Webhook까지 만들고, Intellj에서 코드 작업 후 push해보자.
젠킨스 아저씨가 자동으로 빌드해주는 것을 확인하였다!
#References
https://galid1.tistory.com/466?category=772172
'Open Source > Jenkins' 카테고리의 다른 글
[Jenkins] GCP + Docker + Jenkins를 이용한 CI / CD (0) | 2021.10.03 |
---|---|
[Jenkins] Pipeline (2) | 2021.09.28 |
[Jenkins] 젠킨스로 E-mail 받기 (0) | 2021.09.27 |
[Jenkins] 젠킨스로 Spring Boot 빌드 (1) | 2021.09.27 |