본문 바로가기

젠킨스

maven 빌드 시 jdk관련 에러

 

젠킨스 설치 시 jdk-11이 같이 설치된 jenkins 컨테이너를 실행하기 위해서 jenkins/jenkins:lts-jdk11 의 latest 버전을 사용해서 컨테이너를 실행하였고 

 

docker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --name jenkins-server --restart=on-failure jenkins/jenkins:lts-jdk11

 

명령어의 옵션은 아래와 같다.
--restart -> on-failure 옵션은 비정상 종료시 컨테이너를 재실행
-p -> 외부 접속을 위해 호스트의 8080 포트를 바인딩 
-v -> 호스트의 var/jenkins_home 디렉토리를 호스트 볼륨으로 설정하여 jenkins 컨테이너의 home 디렉토리에 마운트
--name -> 컨테이너 명

 

status의 up을 통해 해당 컨테이너 잘 동작되고 있음을 알 수 있고 외부에서 8080 접속시 docker 내부 8080포트에 연결되는 걸 확인 할 수 있다.

 

localhost:8080에 접속해서 jenkins에서 maven 프로젝트가 잘 동작되는 지 테스트했으나 아래와 같은 에러가 발생했다.

 

WARNING: LinkageError while performing UserRequest:hudson.maven.Maven3Builder@2e3994a0
java.lang.UnsatisfiedLinkError: /opt/java/openjdk/lib/libawt_xawt.so: libXext.so.6: cannot open shared object file: No such file or directory
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2445)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2501)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2700)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2630)
at java.base/java.lang.Runtime.load0(Runtime.java:768)
at java.base/java.lang.System.load(System.java:1837)

 

찾아보니 jdk의 환경변수를 찾지 못하는 에러로 확인되어 확인해 봤으나...

jdk 전역변수 위치 및 해당 경로에 jdk가 잘 설치되어있는 것을 확인 할 수 있었다.

그렇다면 왜....

 

jenkins의 tools에 jdk 부분에서 환경변수로 설정되어있는 경로를 추가해봐도

동일하게 아래와 같이 jdk를 찾을 수 없다는 에러가 발생..

WARNING: LinkageError while performing UserRequest:hudson.maven.Maven3Builder@40f17c43

java.lang.UnsatisfiedLinkError: /opt/java/openjdk/lib/libawt_xawt.so: libXext.so.6: cannot open shared object file: No such file or directory

 

몇 시간동안 여러 설정을 건드려 봤으나 무엇이 문제인지 찾지못하다가 그냥 jdk를 다시 설치해 보자는 생각이 들었다.

 


젠킨스 컨테이너에 들어가서 jdk를 설치하려고 해도 sudo command를 모르겠다면서 apt가 먹히지 않는다.

u를 붙혀서 root 권한으로 접근할 수 있도록 하고

 

jdk-11 을 설치해준다.

maven build가 정상 작동되는 것을 볼 수 있다.