이상을 꿈꾸는 몽상가.. 프로그래밍을 좋아함..


Docker를 이용해서 SonarQube 간단히 설정하기

SonarQube Logo Docker Logo
(이미지 출처 : https://www.sonarqube.org, https://www.docker.com)

Docker를 이용해서 SonarQube를 정말 간단하게 설치하는 내용을 다룹니다.
사실 명령어 한줄만으로 세팅이 완료되서 글을 작성하기 민망하지만…. (기록을 위해서!)

기존 설치방법

깔끔한 OS 위에 처음부터 세팅하려면 아래와 같은 과정을 거쳐야합니다.

  • Java 설치, 환경설정
  • DB 설치
  • SonarQube에서 요구하는 DB table 생성
  • DB 계정 생성 및 권한설정
  • SonarQube 설치
  • SonarQube에 DB 정보 설정

이 글에서는 위의 내용을 다루지 않습니다.
대신 위의 과정이 이미 모두 이뤄진 Docker image를 이용하는 방법을 설명합니다.

Docker를 이용해서 설치하기

최초 설치 및 실행

docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube

sonarqube official repository 에서 이미지를 다운 받고 최초 실행시켜줍니다.
sonarqube라는 이름으로 docker-image가 저장됐습니다.

사실상 설치가 끝난 것이고 아래부터는 몇가지 사용법에 대해서 기술합니다.

License

SonarQube Docker 이미지는 LGPL License 를 가집니다.

SonarQube Container 시작/종료

이 내용은 SonarQube에 관련된 내용이 아니라 Docker container의 종료/조회/시작 하는 법입니다.
PC 혹은 서버를 껐다켜서 container를 조회 후 내려가있다면 container를 시작시킨 후 다시 브라우저로 접속하시면 됩니다.
container를 종료 후 시작시켜도 DB내용이 지워지는 것은 아닙니다.

Container 종료

$ sudo docker stop sonarqube
sonarqube

Container 조회

$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS                                            NAMES
80002e3a5bfc        sonarqube:latest    "./bin/run.sh"      7 days ago          Up 2 hours                  0.0.0.0:9000->9000/tcp, 0.0.0.0:9092->9092/tcp   sonarqube  

Container 시작

$ sudo docker start sonarqube
sonarqube

브라우저 접속

localhost:9000 으로 접속해보시면 sonarqube 웹페이지에 접속됩니다.
Container가 실행 된 후 DB, Sonarqube가 기동되는데까지 약간(1~2분)의 시간이 걸리므로 기다려야합니다.

기본설정

Login Token 설정하기

login-token

위와 같은 순서로 진행하면 login-token이 생성됩니다.
그리고 login-token을 maven, gradle에 설정을 하면 ID, Password 필요없이 SonarQube에 소스코드를 올릴 수 있습니다.
SVN, Git 같은 형상관리에 ID, Password 가 commit 되는 상황을 방지할 수 있습니다.

property "sonar.login", "cc7876988f5e0fwejd69875b360b42ed34db4215"

Project 설정하기

project

위와 같은 순서로 진행하면 project가 생성됩니다.
그리고 maven, gradle에 project 정보를 설정하면 해당 project로 소스코드가 올라가게 됩니다.

property "sonar.projectKey", "sonar:PUBGLog"
property "sonar.projectName", "PUBGLog"

소스코드 올리기

소스코드를 올려야 SonarQube가 분석을 시작합니다.
올리는 방법은 Maven 혹은 Gradle 를 이용한 방법도 있고 Jenkins 를 이용한 방법도 있습니다.

이에 대해서는 해당 글에서 다루지는 않습니다.

해당 설정에 관해서는 다른 글에서 다룰 예정입니다. 관련 tag 글을 참고하세요.

외부 DB 연동하기

위에서 설치한 SonarQube container는 “embedded H2 database” 를 가지고 돌아갑니다.
내장된 DB가 아닌 외부 DB와 연동해야 되는 경우에는 Docker Run 하실 때 DB 접속정보를 함께 입력하시면 됩니다.

  • 대규모 프로젝트에서 사용 될 경우
  • SonarQube 분석결과, 룰셋 등이 이미 외부 DB에 축적되어있을 경우
$ docker run -d --name sonarqube \
    -p 9000:9000 -p 9092:9092 \
    -e SONARQUBE_JDBC_USERNAME=sonar \
    -e SONARQUBE_JDBC_PASSWORD=sonar \
    -e SONARQUBE_JDBC_URL=jdbc:postgresql://localhost/sonar \
    sonarqube

References


Associated Posts

관련된 주제를 살펴볼 수 있도록 동일한 Tag를 가진 글들을 모아뒀습니다. 제목을 눌러주세요.

i