docker-compose部署sonarqube 7.9.5
准备阶段
yum update -y
yum install deltarpm -y
yum install bash-completion bash-completion-extras lsof net-tools -y
source /etc/profile
setenforce 0
sed -i '/=enforcing/ s/enforcing/disabled/' /etc/selinux/config
yum install yum-utils -y
yum-config-manager --add-repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl enable docker --now
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"registry-mirrors" : [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
systemctl daemon-reload
systemctl restart docker
curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
编辑sysctl参数
cat <<EOF | sudo tee /etc/sysctl.d/100-vm.max_map_count.conf
vm.max_map_count = 262144
EOF
sysctl -p
拉取sonarqube镜像
docker pull sonarqube:7.9.5-community
docker run --rm --name sonarqube sonarqube:7.9.5-community
mkdir -p /opt/sonarqube/conf
docker cp sonarqube:/opt/sonarqube/conf/sonar.properties /opt/sonarqube/conf/
docker cp sonarqube:/opt/sonarqube/conf/wrapper.conf /opt/sonarqube/conf/
docker stop sonarqube
编辑docker-compose.yaml
注意这三行一定要把SONAR修改成SONARQUBE,否则数据库是内置的H2
SONARQUBE_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
version: "3"
services:
sonarqube:
image: sonarqube:7.9.5-community
depends_on:
- db
ports:
- "9000:9000"
networks:
- sonarnet
environment:
SONARQUBE_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
volumes:
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_logs:/opt/sonarqube/logs
- sonarqube_temp:/opt/sonarqube/temp
- /opt/sonarqube/conf:/opt/sonarqube/conf
db:
image: postgres
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_data:
sonarqube_extensions:
sonarqube_logs:
sonarqube_temp:
postgresql:
postgresql_data:
启动容器
docker-compose up -d
ldap配置
# /opt/sonarqube/conf/sonar.properties
sonar.security.realm=LDAP
# 根据实际情况修改
ldap.url=ldap://<ldap server ip>:389
ldap.bindDn=CN=user,OU=Users,DC=example,DC=com
ldap.bindPassword=password
# User Configuration
ldap.user.baseDn=OU=Users,DC=example,DC=com
ldap.user.request=(&(objectClass=user)(sAMAccountName={login}))
ldap.user.realNameAttribute=displayName
ldap.user.emailAttribute=mail
# Group Configuration
ldap.group.baseDn=CN=group,DC=example,DC=com
ldap.group.request=(&(objectClass=group)(member={dn}))
ldap.group.idAttribute=sAMAccountName
重启容器
docker-compose restart sonarqube