네이버 클라우드 캠프/Spring Boot & React

[Jenkins] 젠킨스 설정하기(1)

graph-dev 2023. 8. 9. 20:56
728x90

jenkins logo(old)

 

Jenkins 젠킨스

 젠킨스는 CI(Continuous Integration) / CD (Continuous Delivery)를 지원하는 미들웨어 입니다. 즉, 지속적인 통합과 배포를 지원하는데 사용합니다. 개발자가 git, svn 등에 변경사항을 커밋하면 jenkins(젠킨스) 설정에 따라서 테스트, 빌드, 배포 자동화가 가능합니다.

 

대략적인 젠킨스 연동 시나리오를 간단히 표현하면 아래와 같습니다.

 

젠킨스 연동 시나리오

 

Docker에 Jenkins 컨테이너 설치 후 실행

1. 네트워크 브릿지를 생성합니다.

docker network create jenkins
docker network ls

 

2. 젠킨스 이미지를 가져옵니다.

docker image pull jenkins/jenkins:lts-jdk17
docker image ls

 

3. 도커 이미지를 생성합니다.

도커 이미지에는 Jenkins(젠킨스) + jdk17 + 도커 클라이언트 세 가지를 포함합니다.

 

먼저 작업 폴더를 생성하고, 해당 경로로 이동합니다.

mkdir jenkins
cd jenkins

 

docker를 설치하는 쉘 스크립트를 작성합니다.

vi install-docker.sh

 

 쉘 스크립트에는 아래와 같이 작성해줍니다.

#!/bin/sh

apt-get update

apt-get -y install apt-transport-https \
apt-utils \
ca-certificates \
curl \
gnupg2 \
zip \
unzip \
acl \
software-properties-common

curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey

add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) \
stable" && \

apt-get update

apt-get -y install docker-ce
 
 
 
Dockerfile이라고 하는 docker 빌드 파일을 생성합니다.
vi Dockerfile
 
Dockerfile에는 이렇게 작성합니다.
FROM jenkins/jenkins:lts-jdk17

USER root

COPY install-docker.sh /install-docker.sh
RUN chmod +x /install-docker.sh
RUN /install-docker.sh

RUN usermod -aG docker jenkins
RUN setfacl -Rm d:g:docker:rwx,g:docker:rwx /var/run/

USER jenkins
 
docker image를 생성합니다.
docker build -t [도커허브 계정]/jenkins:1.0 .

 

4. 도커 허브에 로그인 후에 허브에 생성한 이미지를 배포합니다.

docker login
docker push [도커허브 계정]/jenkins:1.0

 

5. jenkins 컨테이너를 생성하고 실행합니다.

docker run --privileged -d \
		-v /var/run/docker.sock:/var/run/docker.sock \
        -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 \
        --restart=on-failure --network="jenkins" \
        --name docker-jenkins statsdev/jenkins:1.0

 

젠킨스 설정

젠킨스 접속합니다. 웹사이트 주소창에 다음을 입력합니다.

http://[jenkins서버의 공인아이피 주소]:8080

 젠킨스 관리자 암호를 찾고 싶다면 로그(logs) 명령어를 사용합니다.

docker logs docker-jenkins
 
이 정도로 명령어를 알아두고, 다음 글에서 실습으로 세팅하는 것을 진행해보겠습니다.