使用 Docker Compose 在 SonarQube 中运行 (ナレッジ)

我想做的事情 (Wǒ zuò de

    • sonarqubeをローカルで立ち上げて、かつデータは永続化したい

 

    sonarqubeにDB設定をしないとH2データベースを使ってしまうのでdocker-composeで合わせて設定する

给出的前提

本地环境中已经安装了Docker Compose。

步骤

从公式中获取样本文件并将其放置在任意文件夹中。

 

    執筆時点では以下の記載
version: "3"
services:
  sonarqube:
    image: sonarqube:community
    hostname: sonarqube
    container_name: sonarqube
    depends_on:
      - db
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
    ports:
      - "9000:9000"
  db:
    image: postgres:13
    hostname: postgresql
    container_name: postgresql
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data

volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  postgresql:
  postgresql_data:

使用docker-compose up -d –build进行启动

    サンプルファイルはデフォルトポートをそのまま使っているので、被ってないことを確認した上で立ち上げてください

只要可以站起来就好!

用中文原生表达一下sonaqube访问

http://localhost:9000 的中文翻译是什么

只要能无障碍访问就可以了!

然后,只需使用id/pw的admin/admin进行登录并进行设置。

故障排除

当你无法从这里起身时应采取的应对方法的备忘录

出现了不同版本的Postgresql错误,导致无法启动PostgreSQL。

以下是类似的错误(版本会因人而异)

The data directory was initialized by PostgreSQL version 10, which is not compatible with this version 13.10  docker
    • 原因

ボリュームに保存されているバージョンと、今起動しようとしているバージョンが違うため

対処法

以下のコマンドで一度ボリューム含めて全削除する

docker-compose down –rmi all –volumes –remove-orphans
※注記)docker-composeの設定がすべて消えます

在Elasticsearch中出现错误。

You must address the points described in the following [1] lines before starting Elasticsearch.
    • 対処法

こちらを参考https://stackoverflow.com/questions/57070176/sonarqube-7-9-1-community-troubleshooting

Elasticsearch は MMap FS ディレクトリを使用してインデックスを保存します。OSのデフォルトのmmapカウントの制限値が低すぎる可能性があり、メモリ不足の例外が発生する可能性があります。以下のコマンドを入力し、sudo権限で仮想メモリの値を増やしてください、

デフォルトだとvm.max_map_countの値が低く設定されているためとのこと
以下コマンドを実行して、再度立ち上げ
sudo sysctl -w vm.max_map_count=262144

如果要更改PostgreSQL的默认端口,可以这样做。

Docker-compose中定义的SonarQube会去查看5432端口。

如果您想在本地环境中避免冲突,只需更改以下★即可。

version: "3"
services:
  sonarqube:
    image: sonarqube:community
    hostname: sonarqube
    container_name: sonarqube
    depends_on:
      - db
    environment:
      # sonaqube is connecting to db on 5432port. ★この接続先はそのまま5432ポート
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_logs:/opt/sonarqube/logs
    ports:
      - "9000:9000"
  db:
    image: postgres:13
    ports:
      - "25432:5432" # avoid conflict local pgsql port ★
    hostname: postgresql
    container_name: postgresql
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
      POSTGRES_DB: sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data

volumes:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_logs:
  postgresql:
  postgresql_data:


    参考

 

最终

希望这篇文章对您有所帮助。

广告
将在 10 秒后关闭
bannerAds