이전에 Jenkins를 로컬내에 설치해서 서비스를 진행하는 방법에 대해서 포스팅을 했었다. 하지만 찾아보니 Jenkins와 SonarQube를 연동까지 진행하여 코드의 품질관리까지 하는 글을보면서 몇번 삽질을 하다보니 이거 환경설정하는게 쉽지 않겠다는 생각이 문득 들어서 Docker로 관리하는게 편해보여 그 방법에 대해 공유하고자 한다.
이 글은 시리즈로 작성될 예정이다. Docker설치 방법부터 Jenkins, SonarQube, Gitea, Build, Jest 모두 연동하는 방법을 작성할 예정입니다.
현재 포스팅된 글에서 구성된 환경은 다음과 같습니다.
하나의 리눅스 서버안에 Docker를 통해 Jenkins와 SonarQube를 운영합니다. 그리고 외부에 있는 Gitea 서버와 연동합니다.
Jenkins는 Docker 이미지를 이용해 설치를 진행합니다. 따라서 Docker가 설치되어 있는 환경에서 진행합니다. Docker 설치방법은 포스팅을 참고하시기 바랍니다.
Docker에 사용법을 확인하시려면 포스팅을 확인하시기 바랍니다.
docker pull jenkins/jenkins:lts
docker images
docker run -itd --restart always --name jenkins -p 8080:8080 -e TZ=Asia/Seoul jenkins/jenkins:lts
도커 컨테이너에 올린 Jenkins가 정상적으로 실행되고 있는지 확인합니다.
docker ps
Jenkins 실행했을때 initalAdminPassword를 가져오기위해 Jenkins 컨테이너에 접속합니다. initalAdminPassword 파일은 루트권한으로 접근이 가능하기때문에 루트 사용자로 접속합니다.
docker exec -it -u root jenkins /bin/bash
컨테이너에 접속해 다음명령어를 입력해 initalAdminPassword를 가져옵니다.
cat /var/jenkins_home/secrets/initialAdminPassword
크롬 브라우저에서 리눅스 서버의 url을 입력해서 Jenkins 접속 후 위에서 가져온 initalAdminPassword 값을 입력합니다.
http://192.168.0.91:8080
Jenkins에서 기본 제공하는 플러그인들을 설치하거나 사용자 선택으로 플러그인을 설치합니다. 저는 기본 제공하는 플러그인을 설치하도록 하겠습니다.
설치진행중...
설치가 완료되면 자동으로 계정 설정 화면으로 넘어갑니다. 계정정보를 입력 후 저장하시면 됩니다.
Jenkins 접속시 사용할 URL을 설정합니다. 저는 기본값을 사용하도록 하겠습니다.
인스턴스를 설정 후 Jenkins 시작하기를 누르면 다음과 같이 Jenkins 메인 화면을 만날수 있습니다.
다음 글에서는 Jenkins와 Gitea를 연동해 웹훅을 이용해 Jenkins가 코드푸쉬를 감지하는 방법을 소개하겠습니다.