1.查看稳定版本的SonarQube,注意7.9之后的版本不在支持Mysql。使用PostgreSQL
Download | SonarQube | Sonar
2.拉取PostgreSQL和SonarQube
docker pull postgres
docker pull sonarqube:9.9-community
community代表社区版
3.在下面的目录下创建docker-compose.yml文件
version: '3.1'
services:
db:
image: postgres
container_name:postgresdb
# 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
restart: unless-stopped
# 设置与宿主机时间同步
volumes:
- "/etc/localtime:/etc/localtime:ro"
ports:
- 5432:5432
networks:
- sonarnet
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar@123
sonarqube:
image: sonarqube:9.9-community
container_name: sonarqube
restart: unless-stopped
volumes:
- "/etc/localtime:/etc/localtime:ro"
depends_on :
- db
ports:
- 59000:9000
networks:
- sonarnet
command:
- -Dsonar.web.context=/
environment:
SONARQUBE_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONARQUBE_JDBC_USERNAME: sonar
SONARQUBE_JDBC_PASSWORD: sonar@123
# 网桥elk -> 方便相互通讯
networks:
sonarnet:
driver: bridge
4.设置虚拟内存,最少需要262144
vi /etc/sysctl.conf
vm.max_map_count=262144
fs.file-max=65536
sysctl -p
5.启动
docker-compose up -d
6.查看日志
docker logs -f sonarqube
访问sonarqube:http://localhost:59000
默认的账号和密码都是admin