2021. 7. 28. 16:58ㆍㄱㅐㅂㅏㄹ/OSS(Open Source Software)
Jenkins 에서 잘 사용하지 않는 기능을 테스트를 할 일이 생겼다. 실제 팀환경에서 테스트할건 아니라서 docker 를 이용하기로 했다.
docker hub 의 공식 jenkins 이미지를 검색하면 https://hub.docker.com/_/jenkins 로 확인이 되고 해당 사이트를 접속하면
DEPRECATION NOTICE 가 우릴 반긴다...(제길..) 대략 내용은 '더이상 지원없으니 사용하지 마세요.' 이다.
docker image 가 필요하신 분이면 그냥 docker pull jenkins/jenkins 을 통해 image pull 하면 됩니다.

아래쪽의 링크된 프로젝트 사이트를 통해 확인해보면 공식 repo 라고 따로 안내가 되어있으니 해당 repo 로 접근해야한다.(뭐가 다르겠어..라고 위의 image 를 했지만 플러그인등을 정상적으로 설치할 수 없다.)

해당 image 를 이용해 설치를 진행해보자.
$ docker pull jenkins/jenkins

컨테이너를 실행해보자. 그러면 아래와 같은 로그가 출력되고 'Completed initialization' 을 확인하면 정상적으로 실행이 된것이다.
$docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:latest
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2021-07-28 07:49:04.559+0000 [id=1] INFO org.eclipse.jetty.util.log.Log#initialized: Logging initialized @914ms to org.eclipse.jetty.util.log.JavaUtilLog
2021-07-28 07:49:04.743+0000 [id=1] INFO winstone.Logger#logInternal: Beginning extraction from war file
2021-07-28 07:49:05.712+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2021-07-28 07:49:05.814+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: jetty-9.4.41.v20210516; built: 2021-05-16T23:56:28.993Z; git: 98607f93c7833e7dc59489b13f3cb0a114fb9f4c; jvm 11.0.11+9
2021-07-28 07:49:06.370+0000 [id=1] INFO o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2021-07-28 07:49:06.490+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
2021-07-28 07:49:06.490+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults
2021-07-28 07:49:06.493+0000 [id=1] INFO o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 660000ms
2021-07-28 07:49:07.265+0000 [id=1] INFO hudson.WebAppMain#contextInitialized: Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
2021-07-28 07:49:07.656+0000 [id=1] INFO o.e.j.s.handler.ContextHandler#doStart: Started w.@61af1510{Jenkins v2.289.2,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war}
2021-07-28 07:49:07.728+0000 [id=1] INFO o.e.j.server.AbstractConnector#doStart: Started ServerConnector@58fe0499{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2021-07-28 07:49:07.729+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: Started @4087ms
2021-07-28 07:49:07.738+0000 [id=23] INFO winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2021-07-28 07:49:08.171+0000 [id=30] INFO jenkins.InitReactorRunner$1#onAttained: Started initialization
2021-07-28 07:49:08.235+0000 [id=30] INFO jenkins.InitReactorRunner$1#onAttained: Listed all plugins
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (file:/var/jenkins_home/war/WEB-INF/lib/guice-4.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2021-07-28 07:49:10.057+0000 [id=30] INFO jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2021-07-28 07:49:10.073+0000 [id=30] INFO jenkins.InitReactorRunner$1#onAttained: Started all plugins
2021-07-28 07:49:10.091+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2021-07-28 07:49:11.016+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: System config loaded
2021-07-28 07:49:11.017+0000 [id=31] INFO jenkins.InitReactorRunner$1#onAttained: System config adapted
2021-07-28 07:49:11.018+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2021-07-28 07:49:11.019+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2021-07-28 07:49:11.090+0000 [id=44] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$0: Started Download metadata
2021-07-28 07:49:11.120+0000 [id=44] INFO hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2021-07-28 07:49:12.137+0000 [id=30] INFO jenkins.install.SetupWizard#init:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
f81deaac5e0b4f8b8d50b821a9c87de1
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
2021-07-28 07:49:30.531+0000 [id=31] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization
중간쯤에 ***** 사이에 있는 문자열이 admin 의 비밀번호이며 로그를 지나쳤으면 컨테이너에 접근하여(docker exec -it ~~~ /bin/bash 이용) 경로를 찾아가 /var/jenkins_home/secrets/initialAdminPassword 를 통해 확인할 수 있다.
"처음에 안내한 docker hub 최상위로 검색되는 공식이미지는 위의 절차까지는 성공적이나 플러그인 설치시에 오류로 더이상 진행이 안된다."
http://localhost:8080 에 접근하여 정상적으로 플러그인이 설치가 되면 아래와 같은 화면을 확인할 수 있다.

이제 내맘대로 플러그인이나 item 설정을 통해 테스트를 수행할 수 있다.
테스트를 한 내용이 잘되면 따로 글로 공유할 생각이다.
'ㄱㅐㅂㅏㄹ > OSS(Open Source Software)' 카테고리의 다른 글
| [DevOps] Sonarqube로 코드 품질과 커버리지, 두 마리 토끼 잡기 (실무 적용 가이드) (0) | 2026.01.04 |
|---|---|
| logback 에서의 rolling 정책 사용시 주의사항 (0) | 2021.01.07 |
| Cassandra 의 간략한 특징과 timestamp 에 대해 (0) | 2020.12.16 |
| Apache Kafka 요약 (0) | 2020.11.14 |