網路上已有多位前輩分享相關於SonarQube的介紹,
故小弟就不在此多做贅述,會再參考連結附上相關的文章說明.
主要是再MAC上的docker架設SonarQube做個記事.
如果有誤或有需要補充的地方也勞請前輩不吝指教.
系統環境:MAC OS Version 10.14.2
Docker Compose File
依照官方提供的文件如下
version: "2"
services:
sonarqube:
image: sonarqube
ports:
- "9000:9000"
networks:
- sonarnet
environment:
- sonar.jdbc.url=jdbc:postgresql://db:5432/sonar
volumes:
- sonarqube_conf:/opt/sonarqube/conf
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
db:
image: postgres
networks:
- sonarnet
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
volumes:
- postgresql:/var/lib/postgresql
# This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52
- postgresql_data:/var/lib/postgresql/data
networks:
sonarnet:
driver: bridge
volumes:
sonarqube_conf:
sonarqube_data:
sonarqube_extensions:
postgresql:
postgresql_data:
若是在Linux(本魯測試的環境Linux Mint)的環境上,執行是沒什麼問題的直接執行指令也可正常運行.
但是在MAC上volume的掛載卻找不到對應的實體路徑.如下圖
由於在MAC上為了方便操作,Docker的建置也是包在虛擬機器內,
所以這個路徑對應的是虛擬主機內的路徑,並不是MAC上的路徑.
確認一下透過screen指令進去到Docker的虛擬主機環境下看看嚕 .
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
如上圖所示.透過 docker volume inspect這指令指出的位置確實是Docker虛擬機器上的位置
在MAC上主機跟容器間使用volume有點小麻煩.
只好想想別招,透過docker-compose 環境變數來達到這個目的
.env
LocalPath=請改成自己想存放的位置,如:/Users/TestA/cxcc
如上透過.env檔案設定自己定義的容器內檔案存放位置
docker-compose.yml
version: "3"
services:
sonarqube:
image: sonarqube
ports:
- "9000:9000"
networks:
- sonarnet
environment:
- SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar
volumes:
- '${LocalPath}/conf:/opt/sonarqube/conf'
- '${LocalPath}/data:/opt/sonarqube/data'
- '${LocalPath}/ext:/opt/sonarqube/extensions'
- '${LocalPath}/plugin:/opt/sonarqube/extensions/plugins'
db:
image: postgres
networks:
- sonarnet
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
volumes:
- '${LocalPath}/postgresql:/var/lib/postgresql'
- '${LocalPath}/postgresqldata:/var/lib/postgresql/data'
networks:
sonarnet:
driver: bridge
Try 一發試試
*.env檔案請跟docker-compose.yml 擺在一起即可*
docker-compose up
如上圖已成功建置完成
ls -dl */
也有產出相對應的存放資料夾
網址上輸入
http://127.0.0.1:9000
預設登入帳密:admin/admin
到這邊環境就算建置完成嚕
==>Yaml檔請點我下載<==