Docker Code Analysis Tool (CAT)은 코드 분석을 실현하기위한 사용자 정의 구성 및 플러그인을 포함하는 Sonarqube Docker 이미지입니다.
Sonarqube는 코드 품질을 관리하는 개방형 플랫폼입니다.
이 프로젝트는 무료 소프트웨어입니다. Free Software Foundation에서 게시 한 GNU 일반 공개 라이센스의 조건에 따라 재분배 및/또는 수정할 수 있습니다. 라이센스의 버전 3 또는 이후 버전의 버전 3.
Github : Sonarsource/Sonarqube에서 Sonarqube를 얻을 수 있습니다.
Sonarqube Analysis (Sonar CNES 스캔 플러그인의 경우)를 허용하는 그룹 ID를 찾으십시오.
getent group <group_name> | cut -d : -f3 알려진 그룹 이름에서 그룹 ID에 도달하려면;cat /etc/group 사용하여 모든 그룹 ID를 나열합니다. ❗이 그룹은 모든 프로젝트에 대한 read 및 execution 권한이 있어야하며 (모든 파일을 탐색하고 분석하기 위해) 작업 공간의 루트에 대한 권한을 분석하고 (C/C ++ 도구 및 Sonar-Scanner를 실행하기 위해) write 권한이 있어야합니다.
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 옵션을 사용합니다.
❗ guid (예 : -e ALLOWED_GROUPS=0 )로 0 사용하지 마십시오. 컨테이너의 루트 사용자와 충돌 할 수 있습니다.
Docker Cat의 Sonarqube를 기본 Sonarqube 자격 증명으로 관리자로 로그인 할 수 있습니다. 안전하지 않으므로 (모두가 알고 있습니다!) 보안 환경에서 Docker Cat을 실행하거나 기본 자격 증명을 변경하십시오.
adminadmin관리자로서 원하는 구성을 기본값, 활성화 규칙 또는 품질 게이트 조건으로 변경할 수 있습니다 ...
Docker Cat은 기본적으로 Sonarqube에 통합 된 임베디드 H2 데이터베이스를 사용합니다. 장기적으로 사용해서는 안됩니다. 그렇기 때문에 데이터를 잠시 동안 유지할 것으로 예상되는 이유는 공식 문서에 설명 된대로 더 강력한 데이터베이스를 설정하는 것을 고려해야합니다.
컨테이너가 활성화되면 Sonar CNES 스캔 플러그인이 제공하는 웹 인터페이스를 사용하여 웹 브라우저를 통해 직접 분석을 실행할 수 있습니다. #todo
<your_folder> 에서 코드를 이동하십시오.포함 된 모든 도구에 의해 도달 할 수 있으려면, 소스 코드는 이전에 장착 된 Docker 볼륨 에 배치해야하며
-e ALLOWED_GROUPS=...매개 변수는 전체 디렉토리에 권한이 있어야합니다.
system 시스템 구성으로 인해 마운트 볼륨의 파일에 대한 권한이 약간 어려워지면 코드를 컨테이너에 직접 복사 할 수 있습니다. -v 또는 --volume 옵션을 제거하여 docker run 명령을 실행 하고이 명령 docker cp <my_directory> cat:/media/sf_Shared 사용하여 컨테이너의 디렉토리 /media/sf_Shared 미디어/sf_shared에 디렉토리를 복사하십시오.
좋아하는 웹 브라우저를 열고 Docker Cat IP/URL을 입력 한 다음 다음을 입력하여 Sonarqube 인터페이스에 액세스하십시오
:이전에 제안 된 기본 명령으로 워크 스테이션에서 Docker Cat을 시작하면 주소 표시 줄에http://localhost:9000입력해야합니다.
Sonarqube가로드되면 검은 색 상단 도구 모음에서
More클릭하고CNES Analysis선택하십시오. 새로운 페이지가 분석 양식으로 표시되어야합니다.

다음에주의를 기울여 양식을 작성하십시오.
- 빨간 별표가있는 필드 : 필수입니다
Workspace필드 : 기본적으로 포인트를 보자.이 분야에서. 분석 범위를 제한하려면/mnt/sf_Shared디렉토리에서 상대 경로를 입력하십시오.Workspace필드 : 기본적으로 포인트를 보자.이 분야에서. 테스트 파일에 반대하여 소스 파일로 간주되는 파일/경로를 제한하려면Workspace디렉토리에서 시작하여 Coma로 구분 된 상대 경로 목록을 입력하십시오.Run C/C++ tools: 임베디드 도구 (CPPCHECK, VERA ++ 및 RATS)를 실행하려면 THS 버튼을 켭니다. C 또는 C ++ 코드를 분석하고 이미 CPPCHECK, VERA ++ 또는 RATS가 작업 디렉토리에있는 경우sonar-project.properties필드를 사용하여 이러한 결과의 위치를 지정하고 분석을 끕니다. 자세한 내용은 Sonar-CXX 문서를 참조하십시오.sonar-project.properties필드 :이 필드를 사용하여 고급 구성을 추가하십시오. 공식 문서를 참조하십시오.

페이지 하단의
Analyze버튼을 클릭하여 분석을 실행하십시오. 성공적으로 실행되면 아카이브 다운로드가 웹 브라우저에서 시작해야합니다. 분석 결과가 포함되어 있습니다. CAT 인스턴스에서 이미 분석이있는 경우More>CNES Report에서 Form을 사용하여 다시 시작하지 않고 보고서를 재생할 수 있습니다.
Sonarsource가 제공하는 스캐너 중 하나를 사용하여 클래식 방법으로 분석을 실행할 수 있습니다. Docker Cat이 시작된 URL 또는 IP 와 Port 9000 의 Docker 명령에 제공하는 일치하는 포트를 제공하면됩니다. 자세한 내용은 공식 문서에 설명 된대로 Sonarsource의 스캐너를 사용하십시오.
cppcheck 과 같은 Autolaunched 도구가 올바르게 설정되지 않은 경우 작동하지 않을 수 있습니다.
이 테이블은 Docker Cat이 테스트 된 (✔️으로 표시) 또는 (as) 또는 단순히 지원되지 않음 (로 표시)을 테스트 한 운영 체제입니다.
| 도커 고양이 버전 | 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 코드 CNE | 4.1.2 |
| ? python3 | 3.10.4 |
| ? 씨 | 22.0.2 |
| ? SetUptools-SCM | 8.0.4 |
| ? Pytest-Runner | 6.0.1 |
| ? wrapt | 1.16.0 |
| 육 | 1.16.0 |
| ? 게으른 객체-프로스 | 1.10.0 |
| 맥 카베 | 0.7.0 |
| ? ISORT | 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에 따라 라이센스