Docker를 이용해서 SonarQube 간단히 설정하기
(이미지 출처 : 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을 maven, gradle에 설정을 하면 ID, Password 필요없이 SonarQube에 소스코드를 올릴 수 있습니다.
SVN, Git 같은 형상관리에 ID, Password 가 commit 되는 상황을 방지할 수 있습니다.
property "sonar.login", "cc7876988f5e0fwejd69875b360b42ed34db4215"
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를 가진 글들을 모아뒀습니다. 제목을 눌러주세요.-
Git CLI 개인환경 설정
( 이미지 출처 : https://git-scm.com )git-cli 세팅 후 필요한 개인적인 환경설정 작업들을 기술합니다.
... 더 읽기 -
Windows WSL2를 이용한 Ubuntu, Docker, Kubernetes 환경구성
( 이미지 출처 : https://docs.microsoft.com )Windows 환경에서 Ubuntu를 사용하기 위한 WSL 세팅 후 필요한 개인적인 환경설정 작업들을 기술 합니다.
... 더 읽기 -
Docker 빌드 성능 개선 : dockerignore, node_modules
(이미지 출처 : https://www.docker.com)“도커 빌드가 예전에는 빨랐는데.. 요즘 왜 이렇게 느리지?” 라는 생각이 드신다면 이 글이 도움이 될 수 있습니다.
... 더 읽기 -
Setting Android Studio
-
Ubuntu 18.04 LTS
-
Python3.6 설치
-
Python WAS 구축하기 ( Django, Nginx, Gunicorn )
-
Docker 설치 후 이미지 보관 디렉토리 변경
-
HTTPD (Apache HTTP Server) 설치하기
-
Linux에서 컴파일 설치법을 알아야하는 이유
-
SonarQube 로 Android 소스코드 분석하기
-
How To Set Up SVN(Subversion) Repositories
-
Install CentOS with Docker
-
Nginx SSL 적용방법
-
How to install Nginx & Tomcat
-
Ubuntu 설치 후 초기세팅
-
How to install MariaDB 10.01 on Ubuntu 14.04 LTS
-
How to install Java 8 On Ubuntu
-
Ubuntu 14.04 LTS