Sonarqube로 Golang코드 분석

Divan·2022년 7월 13일
7
post-thumbnail
Sonarqube는 정적인 코드 분석 툴입니다. 
Sonarqube를 세팅하고 Golang 코드를 분석하는것을 정리하였습니다. 

1.Sonarqube 설치

sonarqube는 docker를 통하여 설치하도록 하겠습니다.

우선 도커허브로 이미지를 내려 받습니다.

docker pull sonarqube

이미지를 확인합니다.

docker images

sunarqube latest 버전 이미지를 확인할수있습니다.

image를 실행, 소나큐브는 기본적으로 9000포트를 사용합니다.
(EC2를 사용할경우 t3 small 이상을 사용하는것을 추천합니다. 이하의 사양을 사용하니 소나큐브그 실행이 되지 않았습니다.)

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

2.Sonarqube 설정

image가 제대로 실행 되었다면, 아래의 주소로 들어갑니다.

http://{사용자pc IP}:9000/

초기 Id/Password는 admin/admin 입니다.
접속하여 비밀번호를 변경하여주세요.

로그인 후에
Administration -> Security -> Users 에서 사용자를 생성합니다.

그리고 토큰을 추가해줍니다.

그리고 토큰 이름을 정합니다. 그리고 토큰값을 복사하여 주세요, 추후에 Sonarscanner에서 사용합니다.
(아래토큰은 삭제하였습니다)

Administration -> Security -> Global Permissions에서 아래의 권한을 체크해주세요

이제 프로젝트를 생성합니다.

manullay로 선택해서 생성해줍니다. 프로젝트 이름과 키를 입력하세요.


3.SonarScanner 설치

homebrew로 sonarScanner를 설치해줍니다.
sonarScanner를 통해서 sonar-project.properties파일을 읽어서 소나큐브에 분석 데이터를 올려줍니다.

brew install sonar-scanner

4.Go Project 생성

현재 공부하고 있는 언어가 GO라서 GO기준으로 테스트하였으나 다른언어를 사용하셔도 무방합니다.
테스트하고자하는 프로젝트의 최상의 디렉토리로 가서 sonar-project.properties 파일을 생성합니다. 그리고 아래의 내용을 작성합니다.

sonar.host.url=http://localhost:9000/
sonar.projectKey= project_key // 위화면에서 프로젝트 생성 설정
sonar.projectName= proejct_name //위화면에서 프로젝트 생성 설정
sonar.login= 복사한 토큰 // 아이디 생성당시 생성
# Generated token in SonarQube - http://localhost:9000/account/security/

sonar.sources=.
sonar.exclusions=**/*_test.go,**/vendor/**,**/testdata/*
 
sonar.tests=.
sonar.test.inclusions=**/*_test.go
sonar.test.exclusions=**/vendor/**
sonar.go.coverage.reportPaths=bin/cov.out

이제 준비는 다 끝났습니다.
터미널에서 프로젝트이 최상의 단으로 이동 (sonar-project.properties가 있는 위치) 아래의 명령으를 실행시킵니다.

sonar-scanner

아래와 같은 메세지가 출력되었다면 소나큐브 웹페이지에서 내용을 확인 가능합니다.


현재 소나큐브를 나름 세팅하고 사용해볼려고 노력하고 있으나 잘되지 않습니다. 혹시 글을 읽으신 고수님께서는 이상한부분 보이시면 댓글 부탁드립니다.
앞으로 조금 더 사용해보고 보안 수정해보겠습니다.
다음에는 jenkins와 연동하여서 셋업하는 내용을 정리하겠습니다.

profile
하루 25분의 투자

0개의 댓글