목표 : 앞으로 계속 사용하게될 소나큐브 서버를 세팅
추가 목표 : 젠킨스와 연동 가능하게 설정
- 도커 설치.
- 리눅스 설치 링크 : https://docs.docker.com/desktop/install/linux-install/
- 윈도우 설치 링크 : https://docs.docker.com/desktop/install/windows-install/
- 실리콘 맥에서 설치 권장하지 않음.
- Docker compose 사용하여 구축
- docker-compose.yml 생성 (하단에 첨부)
- 같은 폴더에서 docker-compose up 명령어 입력
- elastic search 관련 오류로 컨테이너가 종료될수 있음
- 컨테이너의 vm.max_map_count = 262144 로 수정해줘야된다.
- wsl 의 경우에는 설정값 변경이 적용되지 않으니 윈도우 /Users/사용자/.wslconfig 를 메모장으로 생성
- [wsl2]
kernelCommandLine="sysctl.vm.max_map_count=262144" 를 추가해준다. - docker-compose up를 입력해서 컨테이너가 실행 되는지 확인한다.
- 컨테이너가 실행되는것을 확인한다.
- 구축된 Sonar Qube 관리자 설정
- 계정/비밀번호는 admin/admin이다.
- 로그인을 하면 새로운 비밀번호를 설정하라고 한다.
- 그후 우측 상단 A에서 MyAccount 를 클릭한다.
- Security에 들어가면 token 생성을 할수 있는데 지금 할필요는 없다.
- IDE와 연결
- VS Code 의 플러그인 검색에서 sonarLint를 설치한다.
- 설치하고 다시 파일탭으로 넘어가면 파일 리스트 하단에 SONARLINT CONNECTED MODE를 클릭
- 하단의 SonarQube + 버튼을 클릭하여 서버 등록창을 띄운다.
- 그리고 우측 Server URL에 http://localhost:9000을 입력하고
- Generate Token을 클릭
- 그러면 크롬 브라우저에서 연결하겠냐고 물어본다.
- 연결을 선택하면 자동으로 남은 칸들이 채워 지면서 서버가 등록된다.
- 등록된 토큰은 1년 동안 지속된다.
- 프로젝트 생성
- 다시 http://localhost:9000으로 접속한다.
- 좌측 상단의 Projects를 클릭.
- 그리고 Create Project -> manually 클릭
- 원하는 프로젝트 이름을 입력하자.
- 프로젝트의 유형을 정할수 있는데 Locally를 선택하자.
- 그럼 프로젝트 전용 token을 생성할수 있다.
- 적절한 기간을 설정한후 generate 버튼을 누르자.
- 그러면 토큰이 생성되고 continue를 누르자.
- 이후 자신의 맞는 언어의 빌드를 선택한다.
- Java (Maven, Gradle)
- C# (.Net)
- TypeScript 그외 (Others)
- 이제 자신의 프로젝트에 맞게 설정을 해주면된다.
- TypeScript(그외)의 경우 SonnarScanner를 설치해 줘야된다.
- IDE와 프로젝트 설정
- 파일탭 좌측 하단의 연결해 뒀던 SonarQube의 http-localhost-9000 서버를 선택하다
- 그리고 + 버튼을 누르면 Add Project Binding 창이 나오면서 우리가 생성했던 프로젝트를 선택한다.
- 그러면 우측 하단에 파란 느낌표 모양으로 프로젝트가 바인딩 됬다는 알림창이 뜬다.
- 이후 코딩을 하면서 빨간 물결 표시가 나오면 좌측 물음표를 클릭하면 내가 위반하고 있는 룰을 알수 잇다.
- 룰 설명서에는 적절한 수정방법 또한 제시하고 있으니 참고하며 수정하면 된다.
docker-compose.yml
version: "3"
services:
sonarqube:
image: sonarqube:community
depends_on:
- db
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
volumes:
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_logs:/opt/sonarqube/logs
ports:
- "9000:9000"
db:
image: postgres:12
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
volumes:
- postgresql:/var/lib/postgresql
- postgresql_data:/var/lib/postgresql/data
volumes:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
postgresql:
postgresql_data:
'교육 > devops' 카테고리의 다른 글
[SONARQUBE&JENKINS] 소나 큐브, 젠킨스 파이프라인 적용 (0) | 2022.11.26 |
---|---|
[Jenkins] 파이프 라인 구성 (0) | 2022.11.16 |