[CI/CD] Jenkins 실행하기

MJ·2023년 4월 26일
0

CI/CD

목록 보기
2/4
post-thumbnail

Jenkins DockerFile

sudo vim Dockerfile

Dockerfile을 만들어준다.

FROM jenkins/jenkins:lts
# Jenkins 공식 이미지를 기반으로하는 Docker 이미지를 생성
USER root
# Docker를 설치하려면 root 권한이 필요합니다. 따라서 사용자를 root로 변경
RUN apt-get update \
 && apt-get -y install lsb-release \
 && curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg \
 && echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
 && apt-get update \
 && apt-get -y install docker-ce docker-ce-cli containerd.io
RUN usermod -u 1000 jenkins && \
    groupmod -g 998 docker && \
    usermod -aG docker jenkins

# 패키지 목록을 업데이트
# lsb-release 패키지 설치
# Docker GPG 키를 다운로드하고 /usr/share/keyrings/docker-archive-keyring.gpg 파일로 저장
# Docker 레포지토리를 /etc/apt/sources.list.d/docker.list 파일에 추가
# Docker CE, Docker CLI, containerd.io 패키지를 설치
# Jenkins 사용자의 UID를 1000으로 변경하고 Docker 그룹의 GID를 998로 변경
# Jenkins 사용자를 Docker 그룹에 추가
  • 이때 주의할점은 아래의 옵션들이다. usermod -u {호스트의사용자아이디} groupmod -g {호스트의 도커 그룹 아이디}
  • ubuntu host에서 호스트의 사용자 아이디를 가져오려면 id -u 명령어를 활용하고, 도커 그룹 아이디를 가져오고 싶다면 cat /etc/group | grep docker 를 사용하면 된다.

이미지 만들기

docker build -t my-jenkins:0.1 .

이미지 확인

volume 생성 및 확인

docker volume create jenkins
docker volume ls

Jenkins 실행

docker run -d --name jenkins \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v jenkins:/var/jenkins_home \
    -p 8080:8080 my-jenkins:0.1


Jenkins 초기 설정

도메인:8080으로 접속한다.

jenkins 컨테이너에 접속해서 비밀번호를 확인한다.

docker exec -it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword

비밀번호를 입력하면

다음과 같은 창이 뜨는데 Install suggested plugins를 클릭한다.

Jenkins가 설치가 되고 완료되면 관리자의 아이디와 패스워드를 설정하는 창이 나오는데 설정하고 싶은 패스워드로 설정하면 된다.


이 때 restart가 제대로 실행되지 않는다면 원격으로 재시작한다.

docker restart {컨테이너ID or NAMES}

0개의 댓글