도찐개찐
[Jenkins] 젠킨스 jdk 버전 11로 올리는 방법 본문
배경
이번 프로젝트의 경우에는 jdk8이 문제가 없던 상황에서 잘 쓰다가 jdk11이 필요한 상황이었다. 예를 들면 rabbitMQ나 sonarqube를 사용하는데 11 이상이 필요한 것을 확인했다.
dev 서버, prod 서버, 프론트 서버, 딥러닝 학습 서버,,, 이번 프로젝트 안에서 기존에 젠킨스 설정을 잡아둔게 너무 많아 새로 젠킨스를 설치할 수는 없었고, 결국 버전을 바꾸기로 했다.
그 과정이 명확하게 설명이 된 블로그가 없길래 한번 정리해본다.
default version : 8
도커를 이용해서 젠킨스 설치 시 기본으로 설치되는 jdk 버전은 8이다. 젠킨스 서버 내부에서 jdk 를 설치하고, 버전을 지정할 수 있는데 무료는 젠킨스9 까지이다.
그런데 젠킨스에서 설치 지원을 안한다는거지 젠킨스 서버 내부의 java 버전을 11로 잡아두면 사용에는 문제 없다. Oracle의 요금 정책 문제라고 생각된다.
그래서 docker 컨테이너로 jenkins를 띄울 때 아예 jdk11를 깔고 있는 이미지도 있다.
docker pull jenkins/jenkins:jdk11
혹시 아직 젠킨스 설치를 안했거나, 특별한 설정이 없는데 자바 버전을 업그레이드하고 싶다면 차라리 위 도커 이미지로 새로 받아 띄우는게 더 마음 편할 것이다.
OpenJdk 11 설치
그래도 기존 설정이 많아 직접 버전을 변경해야한다면 다음을 따라하면 된다. 그냥 docker container에 직접 접속해서 11버전을 깔고, 환경 변수를 바꿔주는 것이다.
보통 우분투에서 자바 버전 변경을 따라할 것이다.
1. docker 컨테이너 접속
docker exec -it {container_id} /bin/bash
2. openjdk 11 설치
sudo apt-get update
// bash: sudo: command not found
여기서 sudo command가 없다는 에러를 만날 것이다. 이 문제는 docker execute 에서 u 옵션을 붙여 root 권한을 받아 해결한다.
다시 컨테이너 접속부터 해보자. 이번엔 root 권한으로 접속한다.
1. docker 컨테이너 접속 / 루트 권한
docker exec -itu 0 {container_id} /bin/bash
2. openjdk 11 설치
apt-get update
apt-get install openjdk-11-jdk
3. 환경 변수 설정
이렇게 11을 설치 환경 변수를 지정하려고 하니, 이번엔 vi 가 없다고 한다.
vi etc/profile
// bash: vi: command not found
다른 작업 필요없이, 편하게 젠킨스에서 JAVA_HOME을 지정할 수 있다. 편하게 아래를 따라한다.
젠킨스 웹에 접속하고, Jenkins 관리를 들어간다.
System Configuration / Global tool configuration에 들어간다.
JDK를 찾고 경로를 지정해준다.
마무리 :: 확인
JDK 11이 잘 적용되었는지 확인하는 가장 간단했던 팁을 공유한다. 그냥 build 시 execute shell을 하나 추가해서 java -version을 찍는 것이다.
젠킨스 프로젝트에 아무거나 하나 들어가서 구성에 들어간다.
Build 을 찾고 Add build Step으로 Execute shell을 하나 추가하거나, 기존의 Execute shell에 java -version을 확인하는 명령어를 넣어주는 것이다.
그리고 빌드해서 jdk 11이 잘 적용되었는지 build output으로 확인하는 것이 가장 깔끔하고 편했던 것 같다.
'Infra ------------------------- > 젠킨스' 카테고리의 다른 글
[Jenkins] Publish over SSH 인증시 BapPublisherException 오류 원인과 해결책 (0) | 2023.03.02 |
---|---|
[Jenkins] GitHub WebHook 연동(빌드 자동화) (0) | 2023.02.28 |
[Jenkins] docker로 설치한 jenkins 업데이트 하기 (0) | 2023.02.24 |
[Jenkins] 맥환경 로컬 환경 git 등 외부 도메인 노출(ngrok) (0) | 2023.02.24 |
[Docker] 젠킨스 설치 (0) | 2023.02.24 |