10

Sonarqube の公式 Docker イメージは、次のような構成変更を保持していませんcreating users, changing root password or even installing new plugins

コンテナが再起動されると、すべての設定変更が消え、インストールされたプラグインが失われます。プロジェクトのキーと以前の QA 分析データでさえ、再起動後に利用できなくなります。

Sonarqube の公式 Docker イメージを使用する場合、データを永続化するにはどうすればよいですか?

4

3 に答える 3

16
  • Sonarqube イメージには一時的な h2 データベース エンジンが付属していますが、これは運用環境には推奨されておらず、コンテナーの再起動後も維持されません。
  • 独自のデータベースをセットアップし、コンテナーの起動時にそれを Sonarqube にポイントする必要があります。
  • Sonarqube docker イメージは、 Sonarqube Dockerfile"$SONARQUBE_HOME/data", "$SONARQUBE_HOME/extensions"から見た 2 つのボリュームを公開します。

呼び出し間でデータを永続化したかったので、製品グレードのデータベースがセットアップされ、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
于 2016-08-07T18:39:02.187 に答える