Docker安裝SonarQube Community Edition(社群版/免費版)的方式如下。
安裝環境
- macOS Ventura 13.0.1
- Docker version 24.0.2
安裝
這邊使用Docker Compose安裝,docker-compose.yml
內容如下:
docker-compose.yml
version: "3"
services:
sonarqube:
image: sonarqube:9-community
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:14
container_name: sonar-postgres
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
volumes:
- sonar_postgresql:/var/lib/postgresql
- sonar_postgresql_data:/var/lib/postgresql/data
volumes:
sonarqube_data:
sonarqube_extensions:
sonarqube_logs:
sonar_postgresql:
sonar_postgresql_data:
說明:
-
安裝的SonarQube image,版本為image: sonarqube:9-community
9-community
。 -
depends_on: - db
sonarqube
依賴下面的db
服務。 -
SonarQube使用的資料庫,即下面environment: SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar SONAR_JDBC_USERNAME: sonar SONAR_JDBC_PASSWORD: sonar
db
的連線資訊。 -
設定SonqrQube容器的volume路徑。volumes: - sonarqube_data:/opt/sonarqube/data - sonarqube_extensions:/opt/sonarqube/extensions - sonarqube_logs:/opt/sonarqube/logs
-
SonqrQube容器的port對映到主機的9000。ports: - "9000:9000"
-
SonarQube所使用的資料庫服務,使用db: image: postgres:14 container_name: sonar-postgres
postgres:14
image建立PostgreSQL容器;容器名稱為sonar-postgres
-
volumes: sonarqube_data: sonarqube_extensions: sonarqube_logs: sonar_postgresql: sonar_postgresql_data:
設定SonqrQube和PorgreSQL容器的volumes。
接著在docker-compose.yml
所在目錄執行docker-compose up -d
建立容器。
% docker-compose up -d
[+] Running 24/24
✔ db 14 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 20.0s
✔ f546e941f15b Pull complete 5.5s
✔ 926c64b890ad Pull complete 5.5s
✔ eca757527cc4 Pull complete 5.6s
✔ cffbe79d4ccf Pull complete 5.6s
✔ 948961f25f1c Pull complete 5.9s
✔ de342bb98309 Pull complete 6.0s
✔ 3793b15c294c Pull complete 6.0s
✔ 75dcc1faad83 Pull complete 6.0s
✔ 7cf615f30719 Pull complete 13.1s
✔ e4e30a075b47 Pull complete 13.2s
✔ 88d16b638ec5 Pull complete 13.2s
✔ 421e3f2047fd Pull complete 13.2s
✔ ac9e8ed60049 Pull complete 13.2s
✔ 3d48d57e0e87 Pull complete 13.2s
✔ sonarqube 8 layers [⣿⣿⣿⣿⣿⣿⣿⣿] 0B/0B Pulled 34.2s
✔ b90a30ba7a05 Pull complete 11.1s
✔ 4d031894e4c0 Pull complete 12.6s
✔ 8a0007a9ef9b Pull complete 14.1s
✔ 917c6cc534cf Pull complete 14.1s
✔ 0d7a0f038262 Pull complete 14.2s
✔ e1a9adfdcdb9 Pull complete 26.8s
✔ fde640df4e7a Pull complete 26.8s
✔ 4f4fb700ef54 Pull complete 26.9s
[+] Running 8/8
✔ Network sonarqube_default Created 0.0s
✔ Volume "sonarqube_sonarqube_logs" Created 0.0s
✔ Volume "sonarqube_sonar_postgresql" Created 0.0s
✔ Volume "sonarqube_sonar_postgresql_data" Created 0.0s
✔ Volume "sonarqube_sonarqube_data" Created 0.0s
✔ Volume "sonarqube_sonarqube_extensions" Created 0.0s
✔ Container sonar-postgres Started 0.7s
✔ Container sonarqube-sonarqube-1 Started
執行完後輸入docker ps
檢視運行的SonqrQube和PostgreSQL容器。
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b13110599dd8 sonarqube:9-community "/opt/sonarqube/dock…" 44 seconds ago Up 43 seconds 0.0.0.0:9000->9000/tcp sonarqube-sonarqube-1
32520ee235eb postgres:14 "docker-entrypoint.s…" 44 seconds ago Up 43 seconds 5432/tcp sonar-postgres
登入SonqrQube
在瀏覽器輸入http://localhost:9000
進入SonarQube的登入頁面,預設帳密為admin/admin。
登入後修改密碼,例如12345
。
SonarQube首頁。
停止
在docker-compose.yml
所在目錄執行docker-compose stop
即可停止SonarQube即資料庫容器。
% docker-compose stop
[+] Stopping 2/2
✔ Container sonarqube-sonarqube-1 Stopped 2.0s
✔ Container sonar-postgres Stopped
解除安裝
在docker-compose.yml
所在目錄執行docker-compose down
即可移除SonarQube即資料庫容器。
沒有留言:
張貼留言