요즘은 도커가 많이 활성화 되어서 각종 환경 구성이 용이하다.
오늘 설치할 소나큐브는 정적분석 도구로서 소스코드 취약점을 분석해 주는 오픈소스이다.
(공식사이트: https://www.sonarqube.org/)
- 소나큐브는 내부적으로 데이터베이스를 활용하며 오늘 가이드에서는 postgre를 이용해 설치한다.
- docker를 이용해 구성하기에는 cli 명령어를 2번 써야 하므로 docker-compose를 활용해 sonarqube를 설치한다.
(설치 순서 & 제약사항)
- AWS EC2에 docker-compose를 먼저 설치한다.
- 이후 docker-compose.yml 파일을 이용해 sonarqube를 구동한다. (docker는 미리 설치되어 있다고 가정)
- sonar rule 세팅은 하지 않는다.
- default ID/Password는 admin/admin123 이다.
1.Docker-compose 설치
아래 명령어로 docker-compose를 설치한다.
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#확인
docker-compose --version
2. docker-compose.yml 설정
docker-compose는 yml 파일 형식을 기반으로 구동된다.
아래와 같이 docker-compose.yml 파일을 작성한다.
version: "2"
services:
sonarqube:
image: sonarqube:lts
container_name: sonarqube
ports:
- "9000:9000"
ulimits:
nofile:
soft: "262144"
hard: "262144"
networks:
- sonarnet
environment:
- sonar.jdbc.url=jdbc:postgresql://db:5432/sonar
volumes:
- sonarqube_conf:/opt/sonarqube/conf
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_logs:/opt/sonarqube/logs
db:
image: postgres
container_name: postgres_sonar
ports:
- "5432:5432"
networks:
- sonarnet
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
volumes:
- postgresql:/var/lib/postgresql
- postgresql_data:/var/lib/postgresql/data
networks:
sonarnet:
driver: bridge
volumes:
sonarqube_conf:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
postgresql:
postgresql_data:
-
sonarqube와 db라는 서비스 (도커 컨테이너)로 구성되고 이들간은 bridge모드로 네트워크를 서로 연결한다. (db:5432/sonar 로 요청가능한 이유가 이것임)
-
ulimits 이하 부분이 없으면 기동시에
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
등과 같은 오류가 발생할 수 있다.-
(호스트 서버) root로 해당 파일을 오픈한다.
(당장 적용은 CLI에서 sudo sysctl -w vm.max_map_count=262144 )vi /etc/sysctl.conf # 아래 내용 추가 vm.max_map_count=262144
-
(docker-compose.yml) 아래 내용 추가
ulimits: nofile: soft: "262144" hard: "262144"
-
-
AWS EC2위에서 셋업했으므로 Security Group에서 9000 포트를오픈한다.
(DB 접속 필요시 5432 포트도 오픈)
아래 명령어로 sonarqube를 실행한다.
docker-compose up -d
- up : 기동
- -d : 데몬 옵션 (백그라운드 실행)
'CICD > sonarqube' 카테고리의 다른 글
AWS EC2에서 Sonarqube (Docker-compose) 서비스로 등록 (0) | 2019.12.20 |
---|