회사에서 하고 있는 프로젝트에 바로 ci/cd를 구축하면 좋겠다만 ci/cd가 처음인 나는 전에 했던 프로젝트를 가지고 ci/cd를 구축해보려고 한다.
플리보따리 라는 프로젝트인데 이 프로젝트는 현재 팀원이 gitAction으로 cicd를 구축해두어서 나는 따로 포크해와 jenkins로 구성해보려고 한다.
위와 같은 구조를 가지도록 목표하고 있다.
기회가 된다면 Nginx도 추가해보고 싶다.
우선 대충 이 정도만 띄워서 되는지만 확인해보는 것이 단기 목표이다!
가보자고
젠킨스 도커 컨테이너를 생성할 것이다.
서버에는 이미 도커가 설치되어 있었다. 도커를 설치하는 과정은 넘어간다.
swapfile 도 2기가 설정해두었다. 이 과정도 기록하지는 않는다. 참고링크에서 참고하자.
우선 설치하기 전 생성할 컨테이너에 Java17을 설치 하려고 한다. 자바 11을 쓴다면 아래와 같이 간단하게 명령어를 작성하여 컨테이너를 만들 수 있지만 현재로서는 Jenkins 이미지 중에 Java17을 지원하는 것은 없다.
sudo docker run -d --name jenkins -p 8081:8080 jenkins/jenkins:jdk11
그래서 Java17설치하는 Dockerfile을 작성하고 그 Dockerfile을 통해 이미지를 만들고 이미지를 실행시켜 컨테이너를 만들 것이다.
Dockerfile 작성
# Dockerfile
FROM jenkins/jenkins
USER root
# OpenJDK 17 설치
RUN apt-get update && apt-get install -y openjdk-17-jdk
# Jenkins 시작
USER jenkins
Docker 이미지 빌드
sudo docker build -t jenkins .
-t
옵션은 빌드된 이미지에 태그를 부여하는 데 사용된다. jenkins
는 이미지의 이름이 된다..
은 Dockerfile이 있는 현재 디렉토리를 나타낸다.Jenkins 컨테이너 생성
sudo docker run -d --name jenkins -p 8081:8080 jenkins
(서버ip):8081
를 브라우저에 url로 입력해 이동하면 젠킨스 아저씨를 만날 수 있다. 바로 요렇게
(이 아저씨가 나중에 되게 화낸다던데…. )
젠아저씨가 기다리라는 대로 기다리면 아래와 같은 화면이 뜬다.
패스워드를 입력해야 하는데 입력하기 위해서는 젠킨스가 설치된 컨테이너에 접속해 위에 빨간 글씨로 적혀있는 디렉토리로 이동하면 초기 관리자 키가 적혀 있다.
// jenkins 컨테이너에 접속
$ sudo docker exec -it jenkins bash
// 초기 관리자 키 확인
$ cat /var/jenkins_home/secrets/initialAdminPassword
위 명령어를 통해 출력된 키를 입력하고 Continue 하면 아래와 같이 초기 플러그인 설정이 나온다.
나는 추천 플러그인들을 설치하고 넘어갔다.
다 되면 유저 설정을 해보자
다 끝나면 Jenkins에 접속할 URL을 설정할 수 있다.
나는 아래와 같이 바꿔주었다.
아니 근데 왜 저 url로 들어가면 화내는거임 ?
아오
저 설정은 뭔지 모르겠고 그냥 8081로 접속해주자 ㅎㅎ..
짜자자잔
이제 모든 설정은 마쳤으니 CI를 구축해보자 !
📎 참고 링크