星期一, 1月 23, 2017

Docker-based SonarQube can't change to non-embedded database?

依據 SonarQube 的說法,換掉預設的內嵌式資料庫並不困難,重點有以下幾個:
  • 準備空的資料庫
  • 準備權限足夠的一組帳密
  • 設定資料庫所在主機的網路接受外部連入(防火牆、資料服務)
  • 修改 conf/sonar.properties
一但所有條件都準備好,放眼設定檔,應該也只有三行要改(以 MySQL 為例):
  • sonar.jdbc.url=
  • sonar.jdbc.username=
  • sonar.jdbc.password=
但最近在試 SonarQube 6.2 來自於 Docker 的版本,自認以上都熟,但還是一直不成功?原來 docker inspect sonarqube 可看到以下段落:
  • [
  •     {
  •         ...
  •         "Config": {
  •             ...
  •             "Env": [
  •                 ...
  •                 "SONARQUBE_JDBC_USERNAME=sonar",
  •                 "SONARQUBE_JDBC_PASSWORD=sonar",
  •                 "SONARQUBE_JDBC_URL=",
  •                 ...
這裡的設定優先權高於 conf/sonar.properties,所以只能在第一次執行時加設環境變數才有效,如:
  • docker run -d -e "SONARQUBE_JDBC_URL=..." sonarqube

沒有留言:

張貼留言