Docker (docker-compose) 搭建 sonarqube
一、需要
- Docker
- sonarqube 镜像
- postgres 镜像
二、准备镜像
1)Docker安装:略
2)sonarqube 镜像拉取
docker pull sonarqube
3)postgres 镜像拉取
docker pull postgres
三、编写docker-compose
-
分别新建两个文件夹 sonarqube 和 postgres 存储两者的 docker-compose 文件和环境变量
-
sonarqube的 docker-compose文件
version: "1"
services:
sonarqube:
container_name: sonarqube
image: sonarqube:${SONARQUBE_VERSION}
restart: always
environment:
- sonar.jdbc.username=${SONARQUBE_JDBC_USERNAME}
- sonar.jdbc.password=${SONARQUBE_JDBC_PASSWORD}
- sonar.jdbc.url=jdbc:postgresql://postgres:5432/sonar
ports:
- "9001:9000"
volumes:
- ./extensions:/opt/sonarqube/extensions
- ./conf:/opt/sonarqube/conf
- ./logs:/opt/sonarqube/logs
external_links:
- postgres
networks:
- sonar
networks:
sonar:
external:
name: sonar_network
.env 文件
SONARQUBE_VERSION=8.3-community # 根据你拉取的版本号来填写
SONARQUBE_JDBC_USERNAME=sonar
SONARQUBE_JDBC_PASSWORD=sonar
- postgres 的 docker-compose文件
version: "1"
services:
postgres:
container_name: postgres
image: postgres:${POSTGRES_VERSION}
restart: always
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- PGDATA=${PGDATA}
ports:
- "5432:5432"
volumes:
- ./data:/var/lib/postgresql/data
networks:
- sonar
networks:
sonar:
external:
name: sonar_network
.env 文件
POSTGRES_VERSION=latest
POSTGRES_USER=sonar
POSTGRES_PASSWORD=sonar
PGDATA=/var/lib/postgresql/data/pgdata
四、启动 docker-compose
先执行 postgres 的 docker-compose
$ docker-compose up
成功启动后执行 sonarqube 的 docker-compose
$ docker-compose up
五、完成
访问 localhost:9001