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 그룹에 추가
id -u
명령어를 활용하고, 도커 그룹 아이디를 가져오고 싶다면 cat /etc/group | grep docker
를 사용하면 된다.docker build -t my-jenkins:0.1 .
docker volume create jenkins
docker volume ls
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
도메인:8080으로 접속한다.
jenkins 컨테이너에 접속해서 비밀번호를 확인한다.
docker exec -it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
비밀번호를 입력하면
다음과 같은 창이 뜨는데 Install suggested plugins를 클릭한다.
Jenkins가 설치가 되고 완료되면 관리자의 아이디와 패스워드를 설정하는 창이 나오는데 설정하고 싶은 패스워드로 설정하면 된다.
이 때 restart가 제대로 실행되지 않는다면 원격으로 재시작한다.
docker restart {컨테이너ID or NAMES}