Docer Composeを使ってオンラインSonarQubeをインストールします.


記事の目次
  • Docer Composeを使ってオンラインSonarQub
  • をインストールします.
  • docker-compse.yml
  • SonarQub
  • をインストールします.
  • Trouble shoting
  • 参照文書
  • Docer Composeを使ってオンラインSonarQubeをインストールします.
    docker-componese.yml
    version: "2"
    
    services:
      sonarqube:
        image: sonarqube:6.7.1
        restart: always
        ports:
          - "9000:9000"
        depends_on:
          - db
        networks:
          - sonarnet
        environment:
          - sonar.jdbc.username=sonar
          - sonar.jdbc.password=sonar123
          - sonar.jdbc.url=jdbc:postgresql://db:5432/sonarqube
          - SONARQUBE_JDBC_USERNAME=sonar
          - SONARQUBE_JDBC_PASSWORD=sonar123
          - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonarqube
        volumes:
          - /srv/docker/sonarqube/sonarqube_conf:/opt/sonarqube/conf
          - /srv/docker/sonarqube/sonarqube_data:/opt/sonarqube/data
          - /srv/docker/sonarqube/sonarqube_extensions:/opt/sonarqube/extensions
    
      db:
        image: postgres:9.6
        restart: always
        networks:
          - sonarnet
        environment:
          - POSTGRES_USER=sonar
          - POSTGRES_PASSWORD=sonar123
          - POSTGRES_DB=sonarqube
        volumes:
          - /srv/docker/sonarqube/postgresql:/var/lib/postgresql
          - /srv/docker/sonarqube/postgresql_data:/var/lib/postgresql/data
    
    networks:
      sonarnet:
        driver: bridge
    
    
    説明:
  • は、dbにおいて、Postgresデータベースのユーザ名、パスワード、データベース名を明確に定義する必要がある
  • は、sonarqubeにおけるデータベースのユーザ名、パスワード、およびデータベース名がdbの定義と一致するように維持される.
  • は、sonarqubeミラーにバグがあるため、データベースのユーザ名、パスワード、データベース名をsonar.jdbc.xxxSONARQUBE_JDBC_XXXで同時に指定する必要があります(そうしないと、デフォルトのH 2データベースを使用している問題があります.または、SonarQubeを開いて、RulesとQualy Profileが空であることが分かります.)
  • また、sonarqubeおよびpostgresのミラーもバージョン互換性の問題があり、テストされた互換バージョンは以下を含む.
  • sonarqube:6.7.1 and postgres:9.6
  • sonarqube:6.4 and postgres:9.4
  • sonarqube:7.0 and postgres:9.6
  • 詳細なdocker-compose.ymlとワンタッチのセットアップスクリプトを参照してください.
  • https://github.com/cookcodeblog/OneDayDevOps/tree/master/components/sonarqube
  • SonarQubをインストール
    mkdir -p /opt/sonarqube
    cd /opt/sonarqube
    wget https://raw.githubusercontent.com/cookcodeblog/OneDayDevOps/master/components/sonarqube/docker-compose.yml
    
    docker-compose up -d
    
    http://sonarqube_ip:9000を開いてSonarQubeにアクセスし、デフォルトのユーザ名パスワードはadmin/adminです.
    Trouble shoting
    Q:SonarQubeを運転してから自動停止します.
    A:SonarQubはElastic Searchを内蔵してコード静的分析をしていますが、Elastic Searchは大量のメモリを占有しています.free -mhを実行してメモリ不足のためSonarQubeが崩壊したかどうかを調べてもいいです.もう一つの理由は、いくつかのSonarQubのDocerfileに問題があり、rootアカウントでないSonarQubeを実行するように設定されていません.一方、SonarQubeはrootアカウント以外で実行できます.
    Q:SonarQubeは依然としてデフォルトのH 2データベースAを使用しています.上のdocker-compose.yml部分の説明を参照してください.
    Q:SonarQubeを開けたら、RulesとQually Profileが空です.上のdocker-compose.yml部分の説明を参照してください.
    参考文献
  • https://docs.sonarqube.org/latest/setup/install-server/
  • https://hub.docker.com/_/ソナクベ/
  • https://github.com/SonarSource/docker-sonarqube/blob/master/recipes.md
  • https://gotechnies.com/sonarqube-install-docker-docker-compose-yml/
  • https://pauledenburg.com/sonarqube-postgres-docker-compose/
  • https://funnelgarden.com/sonarqube-jenkins-docker/