1. Docker 安装 sonarqube
# 1. 拉取镜像
docker pull sonarqube:8.9.2-community
# 3. 修改系统参数
echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p
# 5. 运行测试服务,将对应的sonar 文件拷贝到宿主机
docker run -d --name sonarqube --restart always -p 9000:9000 sonarqube:8.2-community
# 6. 拷贝文件
docker cp sonartest:/opt/sonarqube /soft
# 4 修改文件夹权限
chmod -R 777 /soft/sonarqube/
# 7. 运行容器
# sonarqube 系统搭建
sonarqube:
image: sonarqube:8.9.2-community
container_name: sonarqube
restart: always
ports:
- "9090:9000"
volumes:
- /soft/sonarqube:/opt/sonarqube/
environment:
ALLOW_EMPTY_PASSWORD: "YES"
SONARQUBE_DATABASE_USER: "sonar"
SONARQUBE_DATABASE_NAME: "sonar"
SONARQUBE_DATABASE_PASSWORD: "sonar"
SONARQUBE_JDBC_URL: "jdbc:mysql://192.168.220.132:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false"
# SONARQUBE_JDBC_URL: "jdbc:postgresql://192.168.220.132:5432/sonar"
privileged: true
2. docker 配置数据库
mysql -uroot -p # 密码 123456
GRANT ALL ON *.* TO 'root'@'%'; #所有网络都可访问
create database sonar; #创建 sonarqube 数据库
# 添加远程登录用户:sonar ,并授予权限。
CREATE USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'sonar';
GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'%';
flush privileges; # 刷新权限
启动sonar 报错:
Exception in thread "main" org.sonar.process.MessageException: Unsupported JDBC driver provider: mysql
Dropping Privileges
新版的SonarQube(7.9+)只支持以下数据库:
Microsoft SQL Server、Oracle、PostgreSQL、H2 (默认的嵌入式数据库)\
3. 安装pg 数据库
# 1. 拉取镜像
docker pull postgres
# 2. 创建宿主机文件夹
mkdir -p /soft/postgresql/data /soft/postgresql/postgresql
# 3. 启动容器
# postgresql
postgresql:
image: postgres
container_name: postgresql
restart: always
ports:
- "5432:5432"
volumes:
- /soft/postgresql/:/var/lib/postgresql
- /etc/localtime:/etc/localtime:ro
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
TE: Asia/Shanghai # 时区
privileged: true