Codeblox Blog

SonarQube em uma App Service Linux do Azure

Guilherme
11/01/2022

O SonarQube é uma plataforma para inspeção de qualidade de código. O serviço pago (SonarCloud) pode ser um pouco caro. Abaixo apresento uma forma de hospedar você mesmo o SonarQube utilizando o Azure.

Criando a App Service

Crie uma App Service Linux no modo de publicação Container.

image

Escolha SKU/Tamanho no mínimo B1 (eu tentei na camada grátis, mas não deu certo)

Configurando o Container

Na App Service, no menu “Centro de Implantação” configure utilizando a imagem oficial do SonarQube.

image

Este comando de startup (-Dsonar.es.bootstrap.checks.disable=true) é importante, do contrário ocorrerá um erro na inicialização do ElasticSearch:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

Falando em erros no startup, uma forma legal de acompanhar é pelo Log Stream do Kudu (App Service > Ferramentas Avançadas)

Criando um banco de dados SQL Azure

É importante criar o banco de dados com o collation exigido pelo SonarQube: SQL_Latin1_General_CP1_CS_AS.

Caso contrário ocorrerá o erro abaixo:

Capturar (capturei esse erro pelo Log Stream do Kudu, quando tentei utilizar um SQL Azure sem o collation correto)

Para tudo correr bem, no momento da criação do SQL Azure utilize a opção “Ordenação” em “Configurações adicionais” e utilize o valor SQL_Latin1_General_CP1_CS_AS.

Capturar2

Conectando ao SQL Azure

Para conectar o SonarQube ao SQL Azure criado, é necessário adicionar os seguintes parâmetros nas configurações da App Service:

Ex: jdbc:sqlserver://meu-server.database.windows.net:1433;database=meu-banco;encrypt=true;

image

Considerações finais

Acesse o endereço da App Service e verifique o SonarQube em funcionamento. Se acabou de fazer o setup, ele pode demorar pra inicializar e até mesmo retornar erro de server algumas vezes. Acompanhe o Log Stream do Kudu para verificar se ocorre algum erro de inicialização.

devops
azure
sonarqube


Guilherme M. Abdo
Guilherme M. Abdo
Desenvolvedor fullstack .Net/Angular/Azure/GitHub