정적 코드 분석 도구.
→ 프로그램 실제 실행 없이 코드를 분석
→ CI 파이프라인과의 통합으로 자동화된 코드 리뷰를 수행할 수 있고, 스크립트나 IaC 또한 분석이 가능
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
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
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:
sudo sysctl -w vm.max_map_count=262144
sudo sysctl -w fs.file-max=65536
ulimit -n 65536
ulimit -u 4096
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
ID : admin / PASSWORD : admin
jenkins에서 사용하기 위함!


My Account → Security → Token Name 입력 , 적절한 토큰 Type 선택 (Project , User) → 생성
Quality Gate 단계 이후 Jenkins에게 종료를 알리기 위함


Project Settings → Webhooks → Create

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