เครื่องมือวิเคราะห์รหัส Docker (CAT) เป็นภาพ Sonarqube Docker ที่มีการกำหนดค่าที่กำหนดเองและปลั๊กอินเพื่อรับรู้การวิเคราะห์รหัส
Sonarqube เป็นแพลตฟอร์มแบบเปิดเพื่อจัดการคุณภาพรหัส
โครงการนี้เป็นซอฟต์แวร์ฟรี คุณสามารถแจกจ่ายซ้ำและ/หรือแก้ไขภายใต้เงื่อนไขของใบอนุญาตสาธารณะ GNU ทั่วไปที่เผยแพร่โดย Free Software Foundation; ไม่ว่าจะเป็นเวอร์ชัน 3 ของใบอนุญาตหรือ (ที่ตัวเลือกของคุณ) รุ่นใหม่ ๆ
คุณสามารถรับ Sonarqube บน GitHub: Sonarsource/Sonarqube
ค้นหา ID กลุ่มเพื่ออนุญาตการวิเคราะห์ Sonarqube ไปที่ (สำหรับปลั๊กอิน Sonar CNES Scan):
getent group <group_name> | cut -d : -f3 เพื่อเข้าถึง ID กลุ่มจากชื่อกลุ่มที่รู้จักcat /etc/group เพื่อแสดงรายการ ID กลุ่มทั้งหมด ❗กลุ่มนี้ควรมี read และ execution การสิทธิ์ในโครงการทั้งหมดเพื่อวิเคราะห์ (เพื่อเรียกดูและวิเคราะห์ไฟล์ทั้งหมด) และ write สิทธิ์ในรูทของพื้นที่ทำงาน (เพื่อดำเนินการเครื่องมือ C/C ++ และ Sonar-Scanner)
ค้นหาเวอร์ชันที่คุณต้องการใช้บน Dockerhub: https://hub.docker.com/r/lequal/docker-cat หรือใช้ภาพ latest ที่สอดคล้องกับสาขาหลักของโครงการนี้
เรียกใช้คอนเทนเนอร์ Docker Cat:
docker pull lequal/docker-cat
docker run --rm --name=cat -v < your_folder > :/media/sf_Shared:rw -p 9000:9000 -e ALLOWED_GROUPS= " <GID_1>;<GID_2>;<GID_...> " lequal/docker-cat: < version > ❗ตัวอย่างนี้ใช้ตัวเลือก --rm ดังนั้นเมื่อคอนเทนเนอร์จะหยุดและจะถูกทำลายด้วยข้อมูลทั้งหมด
❗หลีกเลี่ยงการใช้ 0 เป็น GUID (เช่น: -e ALLOWED_GROUPS=0 ): อาจทำให้เกิดความขัดแย้งกับผู้ใช้รูทของคอนเทนเนอร์
คุณสามารถเข้าสู่ระบบ Sonarqube ของ Docker Cat ในฐานะผู้ดูแลระบบที่มีข้อมูลประจำตัว Sonarqube เริ่มต้น เนื่องจากไม่ปลอดภัย (ทุกคนรู้!) อย่าลืมเรียกใช้ Cat Docker ในสภาพแวดล้อมที่ปลอดภัยหรือเปลี่ยนข้อมูลรับรองเริ่มต้น
adminadminในฐานะผู้ดูแลระบบคุณสามารถเปลี่ยนการกำหนดค่าใด ๆ ที่คุณต้องการเป็นค่าเริ่มต้นกฎที่เปิดใช้งานหรือเงื่อนไขเกตคุณภาพ ...
โดยค่าเริ่มต้น Docker Cat ใช้ฐานข้อมูล Embedded H2 ซึ่งรวมเข้ากับ Sonarqube: ไม่ควรใช้สำหรับการใช้งานระยะยาว นั่นเป็นเหตุผลว่าทำไมถ้าคุณคาดหวังว่าจะเก็บข้อมูลไว้สักพักคุณควรพิจารณาตั้งค่าฐานข้อมูลที่แข็งแกร่งขึ้นตามที่อธิบายไว้ในเอกสารอย่างเป็นทางการ
เมื่อคอนเทนเนอร์เปิดใช้งานคุณสามารถใช้เว็บอินเตอร์เฟสที่จัดทำโดยปลั๊กอิน Sonar CNES Scan เพื่อเรียกใช้การวิเคราะห์โดยตรงผ่านเว็บเบราว์เซอร์ของคุณ #Todo
<your_folder>เพื่อให้สามารถเข้าถึงได้โดยเครื่องมือที่รวมอยู่ทั้งหมดซอร์สโค้ดของคุณจะต้องถูกวางไว้ในปริมาณ Docker ที่ติดตั้งไว้ก่อนหน้านี้ และ กลุ่มที่ได้รับ GUID ให้กับ
-e ALLOWED_GROUPS=...พารามิเตอร์ควรมีสิทธิ์ในไดเรกทอรีทั้งหมด
❗หากคุณพบปัญหาบางอย่างที่มีสิทธิ์ในไฟล์ในปริมาณที่ติดตั้ง (เนื่องจากการกำหนดค่าระบบของคุณ) คุณสามารถคัดลอกรหัสของคุณลงในคอนเทนเนอร์ได้โดยตรง เรียกใช้คำสั่ง docker run โดยลบตัวเลือก -v หรือ --volume ใด ๆ และคัดลอกไดเรกทอรีของคุณในไดเรกทอรี /media/sf_Shared ของคอนเทนเนอร์โดยใช้คำสั่งนี้ docker cp <my_directory> cat:/media/sf_Shared
เพียงเปิดเว็บเบราว์เซอร์ที่คุณชื่นชอบและเข้าถึงอินเทอร์เฟซ Sonarqube โดยพิมพ์ Docker Cat IP/URL ตามด้วย
:และพอร์ตที่แมปกับพอร์ต 9000 ของคอนเทนเนอร์ หากคุณเริ่มต้น Docker Cat บนเวิร์กสเตชันของคุณด้วยคำสั่งเริ่มต้นที่เสนอก่อนหน้านี้คุณควรพิมพ์http://localhost:9000ในแถบที่อยู่ของคุณ
เมื่อ Sonarqube โหลดแล้วคลิก
Moreในแถบเครื่องมือด้านบนสีดำและเลือกCNES Analysisหน้าใหม่ควรปรากฏขึ้นพร้อมกับแบบฟอร์มการวิเคราะห์

กรอกแบบฟอร์มโดยให้ความสนใจกับ:
- ฟิลด์ที่มีเครื่องหมายดอกจันสีแดง: พวกมันบังคับ
- ฟิลด์เวิร์
Workspace: โดยค่าเริ่มต้นให้.ในสาขานี้ หากคุณต้องการ จำกัด ขอบเขตของการวิเคราะห์ให้พิมพ์เส้นทางสัมพัทธ์จากไดเรกทอรี/mnt/sf_Shared- ฟิลด์เวิร์
Workspace: โดยค่าเริ่มต้นให้.ในสาขานี้ หากคุณต้องการ จำกัด ไฟล์/พา ธ ที่พิจารณาว่าเป็นไฟล์ต้นฉบับ (โดยฝ่ายค้านเพื่อทดสอบไฟล์) ให้พิมพ์รายการเส้นทางที่แยกจากกันของ Coma ของเส้นทางสัมพัทธ์ที่เริ่มต้นจากไดเรกทอรีเวิร์WorkspaceRun C/C++ tools: เปิดปุ่ม THS หากคุณต้องการเรียกใช้เครื่องมือฝังตัว (CPPCHECK, Vera ++ และหนู) หากคุณวิเคราะห์รหัส C หรือ C ++ และคุณมี CPPCHECK, VERA ++ หรือหนูส่งผลในไดเรกทอรีการทำงานของคุณคุณสามารถใช้ฟิลด์sonar-project.propertiesเพื่อกำหนดตำแหน่งของผลลัพธ์เหล่านี้และปิดการวิเคราะห์ อ้างถึงเอกสาร Sonar-CXX สำหรับข้อมูลเพิ่มเติม- ฟิลด์
sonar-project.properties: ใช้ฟิลด์นี้เพื่อเพิ่มการกำหนดค่าขั้นสูงมากขึ้น อ้างถึงเอกสารอย่างเป็นทางการ

เพียงคลิกที่ปุ่ม
Analyzeที่ด้านล่างของหน้าเพื่อเรียกใช้การวิเคราะห์ เมื่อทำงานสำเร็จการดาวน์โหลดที่เก็บถาวรควรเริ่มต้นในเว็บเบราว์เซอร์ของคุณ มันมีผลลัพธ์ทั้งหมดของการวิเคราะห์ของคุณ หากคุณมีการวิเคราะห์ในอินสแตนซ์ CAT ของคุณแล้วคุณสามารถสร้างรายงานใหม่โดยไม่ต้องวิเคราะห์ซ้ำโดยใช้แบบฟอร์มในCNES ReportMore> CNES
คุณสามารถทำการวิเคราะห์ด้วยวิธีการคลาสสิกโดยใช้หนึ่งในสแกนเนอร์ที่จัดทำโดย Sonarsource คุณเพียงแค่ต้องให้ URL หรือ IP ที่มีการเปิดตัวแมว Docker และพอร์ตการจับคู่ที่คุณให้ไว้ในคำสั่ง Docker สำหรับพอร์ต 9000 สำหรับข้อมูลเพิ่มเติมใช้เครื่องสแกนของ Sonarsource ตามที่อธิบายไว้ในเอกสารอย่างเป็นทางการ
❗ด้วยวิธีการเหล่านี้เครื่องมือที่เปิดอัตโนมัติเช่น cppcheck อาจไม่ทำงานหากไม่ได้ตั้งค่าอย่างถูกต้อง
ตารางการทำงานของรายการตารางนี้ที่มีการทดสอบแมว Docker (ทำเครื่องหมายเป็น✔) หรือไม่ (ทำเครื่องหมายว่า❓) หรือไม่ได้รับการสนับสนุน (ทำเครื่องหมายเป็น)
| Docker Cat Version | Linux (Centos & Debian) | Mac OS | หน้าต่าง |
|---|---|---|---|
3.2.2 | |||
3.0.0 | |||
2.1.0 | |||
2.0.2 | |||
2.0.1 | |||
< 2.0.0 |
ซอฟต์แวร์ใหม่และอัปเดตถูกทำเครื่องหมายด้วยอิโมจิ?
| เครื่องมือ | รุ่น |
|---|---|
| - Sonarqube-Catlab | 3.2.2 |
| - เครื่องสแกนโซนาร์ | 5.0.1.3006 |
| - CPPCHECK | 2.13.0 |
| - i-code cnes | 4.1.2 |
| - Python3 | 3.10.4 |
| - ปิ๊ก | 22.0.2 |
| - setuptools-scm | 8.0.4 |
| - Pytest-runner | 6.0.1 |
| - บิด | 1.16.0 |
| หก | 1.16.0 |
| - ขี้เกียจ | 1.10.0 |
| McCabe | 0.7.0 |
| - มีความเป็นกันเอง | 5.13.2 |
| - พิมพ์ออกมา | 1.5.5 |
| Astroid | 2.15.2 |
| ไพลินต์ | 2.17.2 |
| CNES-PYLINT-EXTENSION | 6.0.0 |
| ทำ | 4.3 |
| GCC | 4: 11.2.0 |
| หอยเชลล์ | 0.8.0 |
หากคุณประสบปัญหากับปลั๊กอินโปรดเปิดปัญหา ภายในปัญหานี้โปรดอธิบายเราถึงวิธีการทำซ้ำปัญหานี้และวางบันทึก
หากคุณต้องการทำ PR โปรดใส่ไว้ข้างในด้วยเหตุผลของคำขอดึงนี้ หากคำขอดึงนี้แก้ไขปัญหาโปรดแทรกจำนวนปัญหาหรืออธิบายภายในของ PR วิธีทำซ้ำปัญหานี้
รายละเอียดทั้งหมดมีอยู่ในการสนับสนุน
ข้อบกพร่องและคำขอคุณสมบัติ: https://github.com/cnescatlab/docker-cat/issues
ได้รับใบอนุญาตภายใต้ใบอนุญาตสาธารณะ GNU ทั่วไปเวอร์ชัน 3.0