安裝 docker-compose
進入/usr/local/bin/
上傳或者下載 docker-compose
chmod +x /usr/local/bin/docker-compose
1 建立目錄
mkdir -p /dockerdata/sonarqube && cd /dockerdata/sonarqube
2 建立所有的對映檔案
mkdir -p /dockerdata/sonarqube/postgres && \
mkdir -p /dockerdata/sonarqube/data && \
mkdir -p /dockerdata/sonarqube/extensions && \
mkdir -p /dockerdata/sonarqube/logs && \
mkdir -p /dockerdata/sonarqube/conf
3 把所有目錄設定為 777 許可權,避免許可權問題
chmod 777 /dockerdata/sonarqube/postgres && \
chmod 777 /dockerdata/sonarqube/data && \
chmod 777 /dockerdata/sonarqube/extensions && \
chmod 777 /dockerdata/sonarqube/logs && \
chmod 777 /dockerdata/sonarqube/conf
建立資料庫掛載
mkdir -p /dockerdata/postgres/postgresql &&\
mkdir -p /dockerdata/postgres/data
chmod -R 777 /dockerdata/postgres/postgresql &&\
chmod -R 777 /dockerdata/postgres/data
4 建立 /dockerdata/sonarqube/docker-compose.yml 檔案,描述了 docker 詳情:
第一個版本
version: '3'
services:
postgres:
image: postgres:12
restart: always
container_name: sonarqube_postgres
ports:
- 5432:5432
volumes:
- /dockerdata/postgres/postgresql/:/var/lib/postgresql
- /dockerdata/postgres/data/:/var/lib/postgresql/data
environment:
TZ: Asia/Shanghai
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
networks:
- sonar-network
sonar:
image: sonarqube:7.9-community
restart: always
container_name: sonarqube
depends_on:
- postgres
volumes:
- /dockerdata/sonarqube/extensions:/opt/sonarqube/extensions
- /dockerdata/sonarqube/logs:/opt/sonarqube/logs
- /dockerdata/sonarqube/data:/opt/sonarqube/data
- /dockerdata/sonarqube/conf:/opt/sonarqube/conf
ports:
- 9000:9000
environment:
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
SONARQUBE_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
networks:
- sonar-network
networks:
sonar-network:
driver: bridge
5 修改一個系統配置,我啟動 docker 時報有相關錯誤(相關報錯在/dockerdata/sonarqube/logs/es.log 中)
cd /etc
vim sysctl.conf
加入vm.max_map_count=262144
sysctl -p
6 啟動容器
docker-compose up -d
瀏覽器訪問
ip:9000