部署sonarqube
复制系统文件
提前准备,需要启动一个容器获取文件
bash
docker cp sonar-26_2_0:/opt/sonarqube/extensions/plugins/sonar-l10n-zh-plugin-26.2.jar ./
docker cp sonar-26_2_0:/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-26.2.0.jar ./
chmod 777 -R /home/upload/ #不然SFTP复制不了
# 上传文件到S3虚拟机操作
复制插件
bash
mkdir /root/docker/sonar_26_2_0/ && cd /root/docker/sonar_26_2_0/
vi docker-compose.yml
mkdir -p data/extensions/plugins && cd data/extensions/plugins
# 下载文件
curl -O http://10.177.11.188:9000/sonar/26.2.0/sonar-l10n-zh-plugin-26.2.jar
curl -O http://10.177.11.188:9000/sonar/26.2.0/sonarqube-community-branch-plugin-26.2.0.jar
curl -O http://10.177.11.188:9000/sonar/26.2.0/sonar-pmd-plugin-2.8-SNAPSHOT.jar
chmod 777 -R /root/docker/sonar_26_2_0/dataPMD 规则 在仓库
运行(启动)容器
CI中注册soanr实例,点击初始化(+用户令牌、+Webhook、Server base URL )
bash
mkdir upload
chmod 777 -R upload/
cp /home/upload/sonar-pmd-plugin-2.8-SNAPSHOT.jar /root/docker/sonar_26_2_0/data/extensions/
#容器中执行
docker exec -it sonar-26_2_0 /bin/bash
cp extensions-backup/sonar-pmd-plugin-2.8-SNAPSHOT.jar extensions/plugins/
#重启容器
docker restart sonar-26_2_0在 Linux 上,您可以通过在主机上以 root 身份运行以下命令来设置当前会话的推荐值
bash
sysctl -w vm.max_map_count=524288 && \
sysctl -w fs.file-max=131072 && \
ulimit -n 131072 && \
ulimit -u 8192挂载目录
/opt/sonarqube/data:数据文件,如嵌入的 H2 数据库和 Elasticsearch 索引/opt/sonarqube/logs:包含关于访问、网页进程、CE 进程、Elasticsearch 日志的 SonarQube 日志/opt/sonarqube/extensions:用于第三方插件
docker run -d --name sonarqube \
-p 9000:9000 \
-e SONAR_JDBC_URL=... \
-e SONAR_JDBC_USERNAME=... \
-e SONAR_JDBC_PASSWORD=... \
-v sonarqube_data:/opt/sonarqube/data \
-v sonarqube_extensions:/opt/sonarqube/extensions \
-v sonarqube_logs:/opt/sonarqube/logs \
<image_name>