A Ferramenta de Análise de Código do Docker (CAT) é uma imagem Sonarqube Docker que contém configuração e plug -ins personalizados para realizar a análise de código.
Sonarqube é uma plataforma aberta para gerenciar a qualidade do código.
Este projeto é um software livre; Você pode redistribuí -lo e/ou modificá -lo nos termos da licença pública geral da GNU, conforme publicado pela Free Software Foundation; A versão 3 da licença ou (por sua opção) qualquer versão posterior.
Você pode obter Sonarqube no Github: SONARSOURCE/SONARQUBE.
Encontre IDs de grupo para permitir a análise Sonarqube (para o plugin Sonar CNES Scan):
getent group <group_name> | cut -d : -f3 para alcançar um ID do grupo de um nome de grupo conhecido;cat /etc/group para listar todos os IDs de grupo. ❗ Este grupo deve ter permissões read e execution em todo o projeto para analisar (navegar e analisar todos os arquivos) e write permissões na raiz da área de trabalho (para executar ferramentas C/C ++ e Sonar-Scanner).
Encontre a versão que você deseja usar no DockerHub: https://hub.docker.com/r/lequal/docker-cat ou simplesmente use a imagem latest que corresponde à filial principal deste projeto.
Execute o recipiente do 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 > ❗ Este exemplo use a opção --rm , portanto, quando o contêiner parar e será destruído com todos os seus dados.
❗ Evite usar 0 como GUID (por exemplo: -e ALLOWED_GROUPS=0 ): pode causar conflitos com o usuário root do contêiner.
Você pode fazer login no Sonarqube do Docker Cat como administrador com as credenciais padrão do Sonarqube. Como não está protegido (todo mundo sabe!), Certifique -se de executar o Docker Cat em um ambiente seguro ou alterar as credenciais padrão.
adminadminComo administrador, você pode alterar qualquer configuração desejada como valores padrão, regras ativadas ou condições de qualidade do portão ...
Por padrão, o Docker Cat usa o banco de dados H2 incorporado que é integrado ao Sonarqube: não deve ser usado para uso a longo prazo. É por isso que, se você espera manter seus dados por um tempo, considere configurar um banco de dados mais forte, conforme descrito na documentação oficial.
Depois que o contêiner estiver ativo, você pode usar a interface da Web fornecida pelo plug -in Sonar CNES Scan para executar uma análise diretamente através do seu navegador da Web. #PENDÊNCIA
<your_folder>Para ser acessível por todas as ferramentas incluídas, seu código -fonte deve ser colocado no volume do Docker montado anteriormente e no grupo cujo GUID foi dado ao parâmetro
-e ALLOWED_GROUPS=...deve ter permissões em todo o diretório.
❗ Se você encontrar algumas dificuldades com as permissões em arquivos em volumes montados (devido à configuração do sistema), poderá copiar diretamente seu código para o contêiner. Execute o comando docker run Removendo qualquer opção -v ou --volume e copie seu diretório no diretório /media/sf_Shared do contêiner usando este comando docker cp <my_directory> cat:/media/sf_Shared .
Basta abrir seu navegador favorito e acessar a interface sonarqube digitando o Docker CAT IP/URL seguido de
:e a porta mapeada para a porta 9000 do contêiner. Se você iniciar o Docker Cat em sua estação de trabalho com o comando padrão proposto anteriormente, terá o tipohttp://localhost:9000na sua barra de endereços.
Quando o Sonarqube estiver carregado, clique em
Morena barra de ferramentas preta superior e selecioneCNES Analysis. Uma nova página deve aparecer com o formulário de análise.

Preencha o formulário prestando atenção em:
- campos com um asterisco vermelho: eles são obrigatórios
- Campos de
Workspace: por padrão, deixe um ponto.neste campo. Se você deseja limitar o escopo da análise, digite o caminho relativo do diretório/mnt/sf_Shared.- Campos de
Workspace: por padrão, deixe um ponto.neste campo. Se você deseja limitar os arquivos/caminho considerado como arquivos de origem (por oposição aos arquivos de teste), digite uma lista comaparada com coma de caminho relativo, começando no diretórioWorkspace.Run C/C++ tools: ligue o botão Ths se desejar executar ferramentas incorporadas (CPPCHECK, Vera ++ e ratos). Se você analisar o código C ou C ++ e já possui CPPCHeck, Vera ++ ou ratos resultará no seu diretório de trabalho, você pode usar o camposonar-project.propertiespara designar a localização desses resultados e desativar a análise. Consulte a documentação do SONAR-CXX para obter mais informações.- Campo de
sonar-project.properties: Use este campo para adicionar uma configuração mais avançada. Consulte a documentação oficial.

Basta clicar no botão
Analyzena parte inferior da página para executar a análise. Quando executado com sucesso, um download de arquivo deve começar no seu navegador da web. Ele contém todos os resultados da sua análise. Se você já possui análise em sua instância do CAT, pode regenerar o relatório sem reenceter a análise usando o formulário emMore>CNES Report.
Você pode executar uma análise com o método clássico usando um dos scanners fornecidos pelo Sonarsource. Você simplesmente precisa dar o URL ou IP onde o Docker Cat foi lançado e a porta correspondente que você fornece no comando do Docker para a porta 9000 . Para mais informações, use scanners da SONARSource, conforme descrito na documentação oficial.
❗ Com esses métodos, a ferramenta automática como cppcheck pode não funcionar, se não estiverem definidas corretamente.
Este sistema operacional da lista de tabela no qual o Docker Cat foi testado (marcado como ✔️) ou não (marcado como❓) ou simplesmente não suportado (marcado como).
| Versão do Cat Docker | Linux (Centos & Debian) | Mac OS | Windows |
|---|---|---|---|
3.2.2 | ✔️ | ❓ | ❓ |
3.0.0 | ✔️ | ❓ | ❓ |
2.1.0 | ✔️ | ❓ | ❓ |
2.0.2 | ✔️ | ❓ | ❓ |
2.0.1 | ✔️ | ❓ | ❓ |
< 2.0.0 | ✔️ | ❓ | ✔️ |
O software novo e atualizado está marcado com emoji?.
| Ferramentas | Versões |
|---|---|
| ? Sonarqube-Catlab | 3.2.2 |
| ? Sonar Scanner | 5.0.1.3006 |
| ? Cppcheck | 2.13.0 |
| ? I-Code CNES | 4.1.2 |
| ? Python3 | 3.10.4 |
| ? pip | 22.0.2 |
| ? SetupTools-SCM | 8.0.4 |
| ? Pytest-Runner | 6.0.1 |
| ? envolvente | 1.16.0 |
| seis | 1.16.0 |
| ? Proxi preguiçoso-objeto | 1.10.0 |
| McCabe | 0.7.0 |
| ? isort | 5.13.2 |
| ? digitado-AT | 1.5.5 |
| astroid | 2.15.2 |
| pylint | 2.17.2 |
| CNES-Pylint-Extension | 6.0.0 |
| fazer | 4.3 |
| GCC | 4: 11.2.0 |
| Verifique | 0.8.0 |
Se você experimentou um problema com o plug -in, abra um problema. Dentro deste problema, explique -nos como reproduzir esse problema e colar o log.
Se você quiser fazer um PR, coloque dentro dele o motivo dessa solicitação de tração. Se essa solicitação de tração corrigir um problema, insira o número do problema ou explique dentro do PR como reproduzir esse problema.
Todos os detalhes estão disponíveis para contribuir.
Bugs e solicitações de recursos: https://github.com/cnescatlab/docker-cat/issues
Licenciado sob a licença pública geral da GNU, versão 3.0