2016-08-07 3 views
0

Sonarqubeの公式ドッカーの画像は、creating users, changing root password or even installing new pluginsのような構成の変更を維持していません。Sonarqubeドッカーの画像でコンテナの呼び出し全体にコンフィグレーションとアナリティクスを持続させる方法

コンテナを再起動すると、設定の変更がすべて消え、インストールされているプラ​​グインが失われます。プロジェクトのキーと以前のQA分析データであっても、再起動後は利用できません。

Sonarqubeの公式ドッカー画像を使用しているときにデータを保持するにはどうすればよいですか?

答えて

4
  • Sonarqubeイメージには、一時的なh2データベースエンジンが付属しています。これは、実稼働環境には推奨されず、コンテナを再起動しても保持されません。
  • 私たち自身のデータベースをセットアップし、コンテナの起動時にSonarqubeを指すようにする必要があります。
  • Sonarqubeドッカー画像は、Sonarqube Dockerfileから見られるように、2つのボリューム"$SONARQUBE_HOME/data", "$SONARQUBE_HOME/extensions"を公開しています。

データを永続化したいので、プロダクショングレードのデータベースがセットアップされ、Sonarqubeにリンクされていることを確認し、拡張ディレクトリが作成され、ボリュームとしてホストマシンにマウントされます。ダウンロードされたプラグインはコンテナの呼び出し全体で使用でき、複数のコンテナで使用できます(必要な場合)。

データベースのセットアップ:

create database sonar; 
grant all on sonar.* to `sonar`@`%` identified by "SOME_PASSWORD"; 
flush privileges; 

# since we do not know the containers IP before hand, we use '%' for sonarqube host IP. 

テーブルを作成する必要はありません、それはそれらを見つけることができなかった場合、Sonarqubeはそれらを作成します。

が起動Sonarqubeコンテナ:

# create a directory on host 
mkdir /server_data/sonarqube/extensions 
mkdir /server_data/sonarqube/data # this will be useful in saving startup time 

# Start the container 
docker run -d \ 
    --name sonarqube \ 
    -p 9000:9000 \ 
    -e SONARQUBE_JDBC_USERNAME=sonar \ 
    -e SONARQUBE_JDBC_PASSWORD=SOME_PASSWORD \ 
    -e SONARQUBE_JDBC_URL="jdbc:mysql://HOST_IP_OF_DB_SERVER:PORT/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance" \ 
    -v /server_data/sonarqube/data:/opt/sonarqube/data \ 
    -v /server_data/sonarqube/extensions:/opt/sonarqube/extensions \ 
    sonarqube 
関連する問題