현재 기준의 도커에서 jenkins를 설치하면서 해당 jenkins container에서 java 11과 docker를 사용하는 방법을 설명한다.
현재 jenkins의 Global Tool Configuration -> install automatically에서 Oracle JDK를 설치하는 것을 9 버전 까지만 지원하고 오라클의 라이선스 정책 변경 때문에 10 이상 버전은 더 이상 지원하지 않는다.
https://issues.jenkins-ci.org/browse/JENKINS-54305
수동으로 설치하는 방법도 있긴 한데 그냥 jenkins 이미지 자체를 jdk 11로 실행한 경우 별도 설정 없이 편하게 java 11을 사용할 수 있다.
개인적으로 개발할 때는 굳이 이런저런 설정 없이 편하게 사용하는 게 좋을 것 같아 java 11 버전 jenkins를 사용하려고 한다.
제공되는 jenkins, docker hub 주소
jenkins의 github는 아래와 같다.
https://github.com/jenkinsci/jenkins
이 jenkins를 docker로 올리기 위한 github은 아래와 같다.
https://github.com/jenkinsci/docker
docker hub의 jenkins 공식 이미지 위치는 아래와 같다.
https://hub.docker.com/_/jenkins
위 주소가 현재 Docker Official Images인데 여기의 Docker Image엔 범용적으로 쓰이는 버전에 대해서만 제공하고 있다.
아래의 주소에는 jdk11, slim, lts-slim, alpine 등 좀 더 다양한 버전의 jenkins를 사용할 수 있다.
https://hub.docker.com/r/jenkins/jenkins
여기의 jenkins jdk11 버전의 jenkins이미지를 사용하면 된다.
(여기 이외에 https://hub.docker.com/r/jenkins/jenkins-experimental에서 다운로드하여 사용할 수 도 있다. 취향 껏 선택하면 된다.)
jenkins jdk 11 사용하기
가장 심플하게는 아래와 같다.
sudo docker run -d --name jenkins -p 8080:8080 jenkins/jenkins:jdk11
jenkins container에서 docker 사용하기
jenkins docker image 내에 docker를 사용하는 방법은 2가지가 있다. dind (docker in docker)와 dood (docker out of docker) 방식이 있다.
dind는 jenkins container 내 docker와 바깥의 docker를 별도로 사용하는 것이고 dood는 외부의 docker를 내부에서 사용하는 방식이라고 한다.
개인적으로 현재 아래처럼 설정하여 사용하고 있다.
순서는 다음과 같다.
- jenkins/jenkins:jdk11에 docker를 설치하는 스크립트를 작성하여 Dockerfile을 작성.
- Dockerfile을 build.
- container를 생성.
개인적으로 사용하는 방법이 맞는건지 모르겠는데 docker image를 생성할 때는 dind 처럼 jenkins container에 docker를 설치 및 docker group에 jenkins 유저를 추가한 후 docker container 생성 시 dood 처럼 외부이 docker를 연결하고 있다. (dind와 dood가 섞여 있는것 같은데 docker를 잘 몰라서 둘 중 하나만 선택해서 쓰는 방식에 대해서는 확인해보지 않앗다.)
docker의 설치 방법은 아래와 같다.
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
Dockerfile은 다음과 같다.
FROM jenkins/jenkins:jdk11
MAINTAINER bluesky <유저@이메일>
USER root
RUN curl -fsSL https://get.docker.com -o get-docker.sh \
&& sh get-docker.sh
RUN usermod -aG docker jenkins
USER jenkins
해당 Dockerfile을 빌드한다.
docker build --tag bluesky-jenkins:0.1 .
빌드된 이미지로 container를 생성한다.
docker run -d --name jenkins -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock -v /data/jenkins:/var/jenkins_home -u root --privileged=true bluesky-jenkins:0.1
'Study > Docker & Kubernetes' 카테고리의 다른 글
로컬 docker-desktop의 kubernetes (k8s)에 elasticsearch, kibana 설치해보기 (0) | 2022.10.08 |
---|---|
Window에서 Docker Desktop 없이 docker, kubernetes 사용하기 (Rancher Desktop 사용하기) (0) | 2021.12.01 |
kubernetes kubectl 명령어 모음 (0) | 2021.08.13 |
Dockerfile 명령어 (0) | 2021.07.02 |
개인 공부용 Docker Desktop kubernetes 설정 모음 (0) | 2021.06.02 |
Docker Desktop Community 2.3.0.2 이후 Windows 10 Home 지원 시작 (0) | 2020.05.17 |
window docker desktop 2.3.0.2에서 kubernetes volume mount가 되지 않는 현상 (0) | 2020.05.12 |
자주 쓰는 Docker 명령어 (0) | 2020.03.14 |
Docker compose 사용하기 (0) | 2019.08.01 |
Docker network 사용하기 (0) | 2019.07.26 |