본문 바로가기

DevOps/Jenkins

[Jenkins/Java17] Jenkins Java 17 프로젝트 배포(JDK 추가, Jib image JDK)

회사는 CI/CD 툴로 젠킨스를 사용 중이다.

이번에 신규 프로젝트는 java 17을 사용했는데 젠킨스 배포 중 예상치 못한 오류를 발견했다.

젠킨스 jdk는 기본으로 11이라서 프로젝트 build가 되지 않았다.



혹시나 jdk를 따로 적용하기 위해 젠킨스 서버나 도커를 새로 띄워야 하나 생각했는데 알아보니 젠킨스에 jdk를 추가하는 방법이 있어 기존 젠킨스 서버를 그대로 쓸 수 있었다.

 

Jenkins JDK 추가

그대로 따라했다.

https://medium.com/devops-with-valentine/jenkins-how-to-use-a-different-java-jdk-version-in-jenkinsfile-d1f0f2d04bcf

 

Jenkins: How to Use a Different Java JDK Version in Jenkinsfile

Let’s say that your Jenkins server is running using Java 11, but you need Java 17 to build a project. How can you do that if you don’t use…

medium.com

 

 

Jenkinsfile 수정

stages 코드 전에 tools jdk에 젠킨스에 추가한 jdk 이름을 적어준다.

pipeline {
    agent any
    
    tools {
        jdk 'Java17'
    }
    
    stages {
            stage('Which Java?') {
                steps {
                    sh 'java --version'
                }
            }
    }
}

 

 

build.gradle jib 코드 수정

프로젝트를 ECR에 올려 배포 중이기 때문에 docker image를 만들어주는 jib 코드도 java 11과는 다르다.

- java 11 Jib 코드

jib {
    from {
	  image = 'adoptopenjdk/openjdk11:alpine-jre'
    }
    ...
}

- java 17 jib 코드

jib {
    from {
	  image = 'openjdk:17-alpine'
    }
    ...
}

https://stackoverflow.com/questions/69525199/openjdk-java-17-docker-image

 

OpenJDK Java 17 docker image

We are upgrading our microservices in docker to use Java 17 and previously we used the base image openjdk:11-jre-slim. What is the corresponding image for Java 17? There doesn't seem to be a openjd...

stackoverflow.com