CI/CD(5) : SonarQube 설치

NOHHYEONGJUN·2024년 9월 24일

CI/CD

목록 보기
6/15
post-thumbnail

SonarQube

정적 코드 분석 도구.
프로그램 실제 실행 없이 코드를 분석
CI 파이프라인과의 통합으로 자동화된 코드 리뷰를 수행할 수 있고, 스크립트나 IaC 또한 분석이 가능


 

 

 


1. docker 설치

ubuntu

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io

sudo usermod -aG docker $user

 

 


2. docker-compose 설치

sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

 

 


3. docker-compose.yaml 작성

version: '3'
services:
  sonarqube:
    image: sonarqube:latest
    ports:
      - "9000:9000"
    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
    depends_on:
      - db
  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:

 

 


🚨 4. system 추가 설정 🚨

sudo sysctl -w vm.max_map_count=262144
sudo sysctl -w fs.file-max=65536
ulimit -n 65536
ulimit -u 4096

 

 


5. container 실행

docker-compose up -d

docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED             STATUS             PORTS                                       NAMES
bffb412d1afa   sonarqube:latest   "/opt/sonarqube/dock…"   About an hour ago   Up About an hour   0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   hj-sonarqube-1
fcd4fedf4953   postgres:12        "docker-entrypoint.s…"   About an hour ago   Up About an hour   5432/tcp                                    hj-db-1

 

 


6. http://sonarqubeIP:9000 접속

ID : admin / PASSWORD : admin


 

 


7. token 생성

jenkins에서 사용하기 위함!

My Account → Security → Token Name 입력 , 적절한 토큰 Type 선택 (Project , User) → 생성


 

 


8. sonarqube webhook 생성

Quality Gate 단계 이후 Jenkins에게 종료를 알리기 위함

Project Settings → Webhooks → Create


 

 


9. Jenkins Credential 추가


 

 

 


준비 끝.

이제 기본적인 CI/CD PipeLine을 위한 구성은 끝났다. ArgoCD는..?
다음 글 부터는 기본적인 CI/CD PipeLine을 구축해 보겠다..

profile
Cloud/DevOps & Network Virtualization에 관심 있는 대학생입니다. 🐳

0개의 댓글