도커환경에서 커스터마이징된 소나큐브 설치하는 방법을 정리한다.
작성일 : 2022-05-30
1> 파일 디스크립터 설정
소나큐브는 Elasticsearch 를 사용하므로 많은 파일을 열수 있도록 root 호스트에서 디스크립터를 아래와 같이 설정
sysctl -w vm.max_map_count=524288
sysctl -w fs.file-max=131072
ulimit -n 131072
ulimit -u 8192
2> 마운트 폴더 생성
mkdir /home/opendocs/sonarqube
mkdir /home/opendocs/sonarqube/data
mkdir /home/opendocs/sonarqube/logs
mkdir /home/opendocs/sonarqube/extensions
3> Dockerfile 생성
mkdir /home/opendocs/sonarqube_docker
mkdir /home/opendocs/sonarqube_docker/extensions
vi /home/opendocs/sonarqube_docker/Dockerfile
# Dockerfile
FROM sonarqube:9.4-community
#COPY extensions/sonar-custom-plugin-1.0.jar /opt/sonarqube/extensions/
4> 컨테이너 생성 및 실행
Dockerfile이 위치한 같은 폴더에서 실행해야함
# 이미지 빌드
sudo docker build --tag=sonarqube-custom .
# 네트워크 확인 & opdnet IP 대역확인
sudo docker network ls
# - 없을 경우 생성
sudo docker network create --gateway 172.20.0.1 --subnet 172.20.0.0/21 opdnet
# - 네트워크 확인
sudo docker inspect opdnet
# ------------------------------------------
# IPAM > Config > Gateway와 같은대역 IP 지정해야함
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.20.0.0/16",
"Gateway": "172.20.0.1"
}
]
},
# Containers에 사용중인 IP는 중복되지 않아야함
"Containers": {
"d4c422b0ceb65ab5f45e2efe2c7da3137b7d66a985f3f222b1b974763529ea7c": {
"Name": "sample",
"EndpointID": "e0dc778cf7fe452b45c5bec1737050395c553d764de75f3a88aef565fe00166d",
"MacAddress": "02:42:ac:11:00:02",
"IPv4Address": "172.20.0.2/16",
"IPv6Address": ""
}
},
# ------------------------------------------
# 컨테이너 설치 및 실행 (고정IP지정)
sudo docker run \
--name sonarqube \
--network opdnet --ip 172.20.0.103 \
-d -p 7777:9000 \
-it \
-v /home/opendocs/sonarqube/data:/opt/sonarqube/data \
-v /home/opendocs/sonarqube/logs:/opt/sonarqube/logs \
-v /home/opendocs/sonarqube/extensions:/opt/sonarqube/extensions \
sonarqube-custom
5> 소나큐브 접속 확인
http://localhost:7777 로 접속하며 초기 관리자 ID / PW는 admin / admin이다.