为了简单高效地部署及管理sonar,决定采用docker-compose版本进行部署。亲测无坑,因为坑以及被我踩完了
首先需要安装数据库,开源的可以用 mysql 或者 postgresql 。官网上已经声明 sonarQube 7.9 版本以上不再支持 mysql 了,我们为了以后升级新版本不做数据库迁移,尽量使用 postgresql 。
mkdir -p /data/sonar/postgres/postgresql
mkdir -p /data/sonar/postgres/data
mkdir -p /data/sonar/sonarqube
chmod 777 -R /data/sonar/sonarqube
echo "vm.max_map_count=262144" > /etc/sysctl.conf
sysctl -p
vim /data/sonar/sonar-compose.yml
version: '3'
services:
postgres:
image: postgres:latest
container_name: postgres
restart: always
privileged: true
networks:
- sonar
volumes:
- /data/sonar/postgres/postgresql:/var/lib/postgresql
- /data/sonar/postgres/data:/var/lib/postgresql/data
- /etc/localtime:/etc/localtime:ro
ports:
- "5432:5432"
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
POSTGRES_DB: sonar
TZ: Asia/Shanghai
sonar:
image: sonarqube:8.9.10-community
container_name: sonar
restart: always
privileged: true
networks:
- sonar
volumes:
- /data/sonar/sonarqube/logs:/opt/sonarqube/logs
- /data/sonar/sonarqube/conf:/opt/sonarqube/conf
- /data/sonar/sonarqube/data:/opt/sonarqube/data
- /data/sonar/sonarqube/extensions:/opt/sonarqube/extensions
ports:
- "9090:9000"
links:
- "postgres:postgres"
environment:
ALLOW_EMPTY_PASSWORD: "yes"
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar
SONARQUBE_JDBC_URL: "jdbc:postgresql://postgres:5432/sonar"
networks:
sonar:
driver: bridge
cd /data/sonar
docker-compose -f sonar-compose.yml up -d
安装中文插件
由于找不到7.4版本,所以我们选择离线安装
cd sonarqube/extensions/downloads/
wget https://github.com/xuhuisheng/sonar-l10n-zh/releases/download/sonar-l10n-zh-plugin-1.24/sonar-l10n-zh-plugin-1.24.jar
docker restart sonar