From d47287a35ad7f2a042bf414ac3fe2376c96e3c83 Mon Sep 17 00:00:00 2001 From: wanghe Date: Tue, 23 Apr 2024 16:26:15 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20SonarQube=20(#1292?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sonarqube/10.5.0-community/data.yml | 48 ++++++++++++++++++ sonarqube/10.5.0-community/data/data/.gitkeep | 0 .../10.5.0-community/data/extensions/.gitkeep | 0 sonarqube/10.5.0-community/data/logs/.gitkeep | 0 sonarqube/10.5.0-community/docker-compose.yml | 22 ++++++++ sonarqube/10.5.0-community/scripts/init.sh | 10 ++++ sonarqube/9.9.4-community/data.yml | 48 ++++++++++++++++++ sonarqube/9.9.4-community/data/data/.gitkeep | 0 .../9.9.4-community/data/extensions/.gitkeep | 0 sonarqube/9.9.4-community/data/logs/.gitkeep | 0 sonarqube/9.9.4-community/docker-compose.yml | 22 ++++++++ sonarqube/9.9.4-community/scripts/init.sh | 10 ++++ sonarqube/README.md | 19 +++++++ sonarqube/data.yml | 19 +++++++ sonarqube/logo.png | Bin 0 -> 7475 bytes 15 files changed, 198 insertions(+) create mode 100644 sonarqube/10.5.0-community/data.yml create mode 100644 sonarqube/10.5.0-community/data/data/.gitkeep create mode 100644 sonarqube/10.5.0-community/data/extensions/.gitkeep create mode 100644 sonarqube/10.5.0-community/data/logs/.gitkeep create mode 100644 sonarqube/10.5.0-community/docker-compose.yml create mode 100644 sonarqube/10.5.0-community/scripts/init.sh create mode 100644 sonarqube/9.9.4-community/data.yml create mode 100644 sonarqube/9.9.4-community/data/data/.gitkeep create mode 100644 sonarqube/9.9.4-community/data/extensions/.gitkeep create mode 100644 sonarqube/9.9.4-community/data/logs/.gitkeep create mode 100644 sonarqube/9.9.4-community/docker-compose.yml create mode 100644 sonarqube/9.9.4-community/scripts/init.sh create mode 100644 sonarqube/README.md create mode 100755 sonarqube/data.yml create mode 100644 sonarqube/logo.png diff --git a/sonarqube/10.5.0-community/data.yml b/sonarqube/10.5.0-community/data.yml new file mode 100644 index 000000000..3ca246c08 --- /dev/null +++ b/sonarqube/10.5.0-community/data.yml @@ -0,0 +1,48 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_DB_HOST + required: true + type: service + default: postgresql + envKey: PANEL_DB_TYPE + labelEn: Database Service + labelZh: 数据库服务 + required: true + type: apps + values: + - label: PostgreSQL + value: postgresql + - default: sonarqube + envKey: PANEL_DB_NAME + labelEn: Database + labelZh: 数据库名 + random: true + required: true + rule: paramCommon + type: text + - default: sonarqube + envKey: PANEL_DB_USER + labelEn: User + labelZh: 数据库用户 + random: true + required: true + rule: paramCommon + type: text + - default: sonarqube + envKey: PANEL_DB_USER_PASSWORD + labelEn: Password + labelZh: 数据库用户密码 + random: true + required: true + rule: paramComplexity + type: password + - default: 9000 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number diff --git a/sonarqube/10.5.0-community/data/data/.gitkeep b/sonarqube/10.5.0-community/data/data/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/sonarqube/10.5.0-community/data/extensions/.gitkeep b/sonarqube/10.5.0-community/data/extensions/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/sonarqube/10.5.0-community/data/logs/.gitkeep b/sonarqube/10.5.0-community/data/logs/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/sonarqube/10.5.0-community/docker-compose.yml b/sonarqube/10.5.0-community/docker-compose.yml new file mode 100644 index 000000000..c9dfd4e3c --- /dev/null +++ b/sonarqube/10.5.0-community/docker-compose.yml @@ -0,0 +1,22 @@ +services: + sonarqube: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + image: sonarqube:10.5.0-community + ports: + - ${PANEL_APP_PORT_HTTP}:9000 + volumes: + - ./data/data:/opt/sonarqube/data + - ./data/extensions:/opt/sonarqube/extensions + - ./data/logs:/opt/sonarqube/logs + environment: + SONAR_JDBC_URL: jdbc:${PANEL_DB_TYPE}://${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} + SONAR_JDBC_USERNAME: ${PANEL_DB_USER} + SONAR_JDBC_PASSWORD: ${PANEL_DB_USER_PASSWORD} + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/sonarqube/10.5.0-community/scripts/init.sh b/sonarqube/10.5.0-community/scripts/init.sh new file mode 100644 index 000000000..445f83b2b --- /dev/null +++ b/sonarqube/10.5.0-community/scripts/init.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f "/etc/sysctl.conf" ]; then + grep -qxF 'vm.max_map_count=262144' /etc/sysctl.conf || echo 'vm.max_map_count=262144' >> /etc/sysctl.conf + sysctl -p /etc/sysctl.conf >/dev/null +else + sysctl -w vm.max_map_count=262144 +fi + +chown -R 1000:1000 data \ No newline at end of file diff --git a/sonarqube/9.9.4-community/data.yml b/sonarqube/9.9.4-community/data.yml new file mode 100644 index 000000000..3ca246c08 --- /dev/null +++ b/sonarqube/9.9.4-community/data.yml @@ -0,0 +1,48 @@ +additionalProperties: + formFields: + - child: + default: "" + envKey: PANEL_DB_HOST + required: true + type: service + default: postgresql + envKey: PANEL_DB_TYPE + labelEn: Database Service + labelZh: 数据库服务 + required: true + type: apps + values: + - label: PostgreSQL + value: postgresql + - default: sonarqube + envKey: PANEL_DB_NAME + labelEn: Database + labelZh: 数据库名 + random: true + required: true + rule: paramCommon + type: text + - default: sonarqube + envKey: PANEL_DB_USER + labelEn: User + labelZh: 数据库用户 + random: true + required: true + rule: paramCommon + type: text + - default: sonarqube + envKey: PANEL_DB_USER_PASSWORD + labelEn: Password + labelZh: 数据库用户密码 + random: true + required: true + rule: paramComplexity + type: password + - default: 9000 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number diff --git a/sonarqube/9.9.4-community/data/data/.gitkeep b/sonarqube/9.9.4-community/data/data/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/sonarqube/9.9.4-community/data/extensions/.gitkeep b/sonarqube/9.9.4-community/data/extensions/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/sonarqube/9.9.4-community/data/logs/.gitkeep b/sonarqube/9.9.4-community/data/logs/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/sonarqube/9.9.4-community/docker-compose.yml b/sonarqube/9.9.4-community/docker-compose.yml new file mode 100644 index 000000000..75874ab99 --- /dev/null +++ b/sonarqube/9.9.4-community/docker-compose.yml @@ -0,0 +1,22 @@ +services: + sonarqube: + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + image: sonarqube:9.9.4-community + ports: + - ${PANEL_APP_PORT_HTTP}:9000 + volumes: + - ./data/data:/opt/sonarqube/data + - ./data/extensions:/opt/sonarqube/extensions + - ./data/logs:/opt/sonarqube/logs + environment: + SONAR_JDBC_URL: jdbc:${PANEL_DB_TYPE}://${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME} + SONAR_JDBC_USERNAME: ${PANEL_DB_USER} + SONAR_JDBC_PASSWORD: ${PANEL_DB_USER_PASSWORD} + labels: + createdBy: "Apps" +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/sonarqube/9.9.4-community/scripts/init.sh b/sonarqube/9.9.4-community/scripts/init.sh new file mode 100644 index 000000000..445f83b2b --- /dev/null +++ b/sonarqube/9.9.4-community/scripts/init.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f "/etc/sysctl.conf" ]; then + grep -qxF 'vm.max_map_count=262144' /etc/sysctl.conf || echo 'vm.max_map_count=262144' >> /etc/sysctl.conf + sysctl -p /etc/sysctl.conf >/dev/null +else + sysctl -w vm.max_map_count=262144 +fi + +chown -R 1000:1000 data \ No newline at end of file diff --git a/sonarqube/README.md b/sonarqube/README.md new file mode 100644 index 000000000..ece826ad5 --- /dev/null +++ b/sonarqube/README.md @@ -0,0 +1,19 @@ +# 默认账户密码 + +``` +username:admin +password:admin +``` + +# SonarQube + +**SonarQube** 是一个开源的代码质量管理平台,用于静态代码分析、代码质量管理和持续集成的工具。它提供了一系列功能,帮助开发团队发现、跟踪和修复代码中的技术债务和缺陷,以提高代码的可维护性、可靠性和安全性。 + +## 主要功能 + +- **静态代码分析**:发现和修复代码中的质量问题。 +- **代码质量度量**:提供各种度量指标,评估代码质量水平。 +- **问题追踪和管理**:记录和管理代码中的问题和缺陷。 +- **持续集成支持**:与持续集成工具集成,实现自动化代码分析。 +- **代码仓库集成**:与版本控制系统集成,方便获取源代码。 +- **多语言支持**:适用于多种编程语言项目。 diff --git a/sonarqube/data.yml b/sonarqube/data.yml new file mode 100755 index 000000000..ca6ca5fbb --- /dev/null +++ b/sonarqube/data.yml @@ -0,0 +1,19 @@ +name: SonarQube +tags: + - DevOps +title: 开源的代码质量管理平台 +description: 开源的代码质量管理平台 +additionalProperties: + key: sonarqube + name: SonarQube + tags: + - DevOps + shortDescZh: 开源的代码质量管理平台 + shortDescEn: An open-source code quality management platform" + type: tool + crossVersionUpdate: false + limit: 0 + recommend: 0 + website: https://www.sonarsource.com + github: https://github.com/SonarSource/sonarqube + document: https://docs.sonarsource.com/sonarqube diff --git a/sonarqube/logo.png b/sonarqube/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fbbe5e022bd280b8069ac51bbf07209984f0ead3 GIT binary patch literal 7475 zcmd6MWl$VI)8+yJg1ZKHcb5((_K^3GgH+QrJ<&Xg-(tR006L*mE^QuN|65s&LfMQ%*^R?k4MSLsLfDK#IlhK5=?7D3`%!55(&`4#=>;-;31ZX_qWSDk zs_xBa9;xl0Wf4^xU*28XG1ff+o>|=kZy)U(UmTuaZ5*5}ZXJ&O+iV<~%WM7O^ zUZCij!fpEf=@|-#!!K{{|IDu^Rrad;WRPq4z~Jzg{}dP$_MhUBRwHB;{UtcJvUd^& zgYTb0e%AC$+Q+qz{yVw6xw(6YC~h;2ES>;wOFJb(p-^CQm1lbG;LNIuXWHGvlV4Ut zG^q3J>ULq{AiZut&@#$DyD=oc#WwDjV`2q~npbw?keF?3LF-8E!1Tk@tAQ7v%sT5> z(9zA)?=8sK?sZ_-R`=SaUip$!(^~G|!?m;fXDBRvbl)X@&)QKxLNefgs9-|55S+#D}24>dJaZEelM!U8`(-^$8LXJ==9eSK3?)1N;>5C~*qVxq0B zZDwZX@bIv|zkg$6+nbAvb8l}?O-+@20S#c2SChSOHCVqfcORphn$I>hn5%(OU^x`b?V^pe9Xmg{3gaPV)K8G(q9XeOA5 z(S}H8HTsz$gdyb(;yI@-`(=R)vAhuwp;EWHnM=>MImW}b*{S+#^HRr$HTlvXhSj*Z z8o=??j+o}|3qPrQ34Q|Njc|GVk()heAuR#lb*|gwg~SxW6-DSTq#Xz)1sn8qv#&Ph zdYS6)Oj0D=%VEAPDy6Y8MSISQ>lC2|=_)u@QNVd-wmH@CM2I1yZ>{+3-I+u##THBc z);`E|Lqw$2d7(e1M3v=|m@i=@o+@|U0dv*JgPOXg)8%=RQWlczGUGf(F%W~(maM(K( zn+dq{j?vo=*%Fi{@xV*J0TCVDB8UctD$%AVVt%y_dR|cVUomW} zA7x5m2PNc2-599YEV%;(9Fl+H$7C+u9M3PlhXCb-j+nmDX|ct}XAt3hmHnJS)pdXF z(5yxLws(({=DE3PxB*}j*O8s9TBVbatsSxWvAayxWssm~&rC=tU}JX$98BQUBCC$W zM2E!aI`o@2>Y<|28i=#a9ImCsYJ96C&Ccu>t?JJTdr?h|(~*mflgT=}19lOvNxv(e5Ds<F5l8Pg;z^U@aUNB6NmLoGI{B_M*gpOit!lV*`in{dRcbWXFfgq)xSt zmzO%7F^Lw_az7pZi3>%K@C{m;PKuO98*hb2bvP>ZOd<#cWz?UV(yQ7ub@I=VHkeei6Qo+Y#83&!YJtu0 z9}eqOpk+h@SXkO{eC>WmnxJZ#G(Q}VTy?e{O>fo*FokZ3Fm)U7iM<+MRFF~uE|eOi z^4%JPIUwOI4FAApX4*Bew~;(#i%TwQSkA$TA(^$vCS?2Q#hn_o zaH@HWn`HT Eh8qn~e1EcoS3Muh0 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 literal 0 HcmV?d00001