본문 바로가기

PROGRAMING/DOCKER

docker로 젠킨스 설치

https://teichae.tistory.com/entry/Docker%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-Jenkins-%EC%84%A4%EC%B9%98

#jenkins 설치 시 사용할 Home Directory 생성
mkdir -p /docker/jenkins
chmod 666 /docker/jenkins

#docker로 Jenkins 시작
docker run -itd --name jenkins -p 8080:8080 -p 50000:50000 -v /docker/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -e TZ=Asia/Seoul -u root jenkins/jenkins:latest

 

#주요 옵션 설명
-v /docker/jenkins:/var/jenkins_home
local volume의 /docker/jenkins 디렉토리와 container volume의 /var/jenkins_home 디렉토리 매핑

-v /var/run/docker.sock:/var/run/docker.sock
제일 중요한 옵션
docker in docker를 구현하기 위해 사용하는 옵션

-u root
Docker 사용자를 root로 설정

-p 8080:8080 -p 50000:50000
local port와 container port 연결
8080은 Jenkins 기본 port
50000dms Jenkins slave port

-e TZ=Asia/Seoul
jenkins 내의 timezone 설정
 

 

#시작
$ docker run -itd --name jenkins -p 8080:8080 -p 50000:50000 -v /docker/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -e TZ=Asia/Seoul -u root jenkins/jenkins:latest
bd424146634accac8399ec25339b9732bbdf408eb149e65605de5d03f9d20aa7

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                              NAMES
bd424146634a        jenkins/jenkins:latest     "/sbin/tini -- /usr/??   3 seconds ago       Up 2 seconds        0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp   jenkins

 

브라우저에서 확인

http://192.168.0.13:8080

암호는 아래 파일에 적혀있다. 

/docker/jenkins/secrets/initialAdminPassword

설치끝나고 계정입력시

admin/admin 으로 했고

--------------------------------------------------------------

jenkins 내에  docker로 빌드하려고 했는데 docker가 설치가  jenkins image내에 없어서 안되었다.

찾아보니 아래와 같은게 있었다.
forums.docker.com/t/docker-not-found-in-jenkins-pipeline/31683/30

 

Docker: not found in Jenkins pipeline

This solution worked for me. Thank you!

forums.docker.com

 

내용은 호스트에 docker 위치를 image container 안에 연결하는거이었다.

docker run -u 0 --privileged --name jenkins -d -p 8080:8080 -p 50000:50000 -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

 

위에를 참고하면 아래와 같이 된다.

jenkins 컨테이너지우고 jenkins 이미지 지우고

아래 위에 호스트 docker volumne를 반영한 커멘드를 실행한다.

docker run -itd --name jenkins -p 8080:8080 -p 50000:50000 -v $(which docker):/usr/bin/docker -v /docker/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -e TZ=Asia/Seoul -u root jenkins/jenkins:latest

 

linux에서 flutter를 설치하고 아래와 같이 docker의 볼륨을 추가해주었다.

wget https://storage.googleapis.com/flutter_infra/releases/stable/linux/flutter_linux_2.0.5-stable.tar.xz
mkdir development
cd development
tar xf ~/flutter_linux_2.0.5-stable.tar.xz

볼륨및 docker 생성

docker run -itd --name jenkins -p 8080:8080 -p 50000:50000 -v $(which docker):/usr/bin/docker -v /docker/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /root/development:/root/development -e TZ=Asia/Seoul -u root jenkins/jenkins:latest

 

자바 11 버전 설치

host 머신에 11을 설치한다.

cd ~
mkdir open-jdk-11
cd open-jdk-11
wget https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz
tar xf openjdk-11+28_linux-x64_bin.tar.gz


/home/jijs/open-jdk-11/jdk-11/bin/java

java 포함 도커

docker run -itd --name jenkins -p 8080:8080 -p 50000:50000 -v $(which docker):/usr/bin/docker -v /docker/jenkins:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /root/development:/root/development -v /home/jijs/open-jdk-11/jdk-11:/usr/lib/jvm/java-11-openjdk-amd64 -e TZ=Asia/Seoul -u root jenkins/jenkins:latest