Page 16 - Revista_60.pub
P. 16

A PROGRAMAR








         Introdução ao SonarQube




               Na edição 56 falei sobre a gestão da qualidade do códi-        - sonarqube-volume:/opt/sonarqube/lib/
         go e introduzi o SonarQube e algumas das suas funcionalida-  bundled-plugins
         des. Neste artigo, vou configurar uma instância de Sonarqube
                                                                   #--------
         e como configurar diversos scanners para analisar os projetos   # SONARDB
         Java e C# no meu Macbook.                                 #--------
                                                                     sonardb:
                                                                       image: 'postgres:9.6.2'
                                                                       networks:
         Let’s start                                                     - CI-Network
                                                                       environment:
               Uma chamada de atenção antes de começar a usar a          - POSTGRES_USER=sonar
         imagem docker do Sonarqube:                                     - POSTGRES_PASSWORD=sonar
                                                                       volumes:
                  “By default, the image will use an em-                - sonardb-volume:/var/lib/postgresql/data
                  bedded H2 database that is not suited for
                  production. “                                       Este ficheiro de configuração não tem nada de espe-
                                                                cial, configurar a instância e a base de dados em postgres.
               Como  vou  usar  uma  imagem  docker  do  SonarQube,
         vou começar por criar o ficheiro  docker-compose.yml, onde   Vamos arrancar o contentor:
         faço as configurações necessárias para correr sem problemas.
               Para  efeitos  de  demonstração,  o  ficheiro  docker-  $> docker-compose up –d
         compose.yml tens as credenciais em texto claro. Devem consi-    $> docker-compose logs –f
         derar  docker-secrets  para  a  gestão  de  credenciais  dos  siste-
         mas.                                                         A primeira vez que o contentor arrancar, vai demorar
                                                                a “montar a infra-estrutura”, mas as vezes seguintes torna-se
          docker-compose.yml:
                                                                mais rápido.
            version: '3'                                        Passado  uns  momentos  a  aplicação  está  disponível  em:
            #---------------                                    http://localhost:9000
            # NETWORK
            #---------------
            networks:
              CI-Network:
                driver: bridge

            #---------------
            # VOLUMES
            #---------------
            volumes:
              sonarqube-volume:
              sonardb-volume:

            services:
            #--------
            # SONAR
            #--------
              sonar:                                                 Figure 1: SonarQube @ http://localhost:9000
                image: 'sonarqube:6.7.2'
                networks:                                             De acordo com a página SonarQube Security (https://
                  - CI-Network                                  docs.sonarqube.org/display/SONAR/Authentication) :
                ports:
                  - '9000:9000'                                 As credenciais de acesso são:
                  - '9022:9022'
                links:                                                             admin / admin
                  - sonardb
                depends_on:                                     Depois do Login temos este wizard:
                  - sonardb
                environment:
                  - SONARQUBE_JDBC_URL=jdbc:postgresql://
         sonardb:5432/sonar
                  - SONARQUBE_JDBC_USERNAME=sonar
                  - SONARQUBE_JDBC_PASSWORD=sonar
                volumes:
                  - sonarqube-volume:/opt/sonarqube/conf
                  - sonarqube-volume:/opt/sonarqube/data
                  - sonarqube-volume:/opt/sonarqube/
         extensions                                                         Figure 2: New project wizard



                                                           16
   11   12   13   14   15   16   17   18   19   20   21