Skip to content

Commit cbbdb0a

Browse files
xiagwbestlong
authored andcommitted
add sonarqube to docker-compose (laradock#2113)
* add sonarqube to docker-compose * change volume dir * add postgres init db * add comment for sonarqube error
1 parent f5c80cd commit cbbdb0a

6 files changed

Lines changed: 94 additions & 1 deletion

File tree

docker-compose.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ volumes:
4141
driver: ${VOLUMES_DRIVER}
4242
mosquitto:
4343
driver: ${VOLUMES_DRIVER}
44+
sonarqube:
45+
driver: ${VOLUMES_DRIVER}
4446

4547
services:
4648

@@ -403,6 +405,10 @@ services:
403405
- JUPYTERHUB_POSTGRES_USER=${JUPYTERHUB_POSTGRES_USER}
404406
- JUPYTERHUB_POSTGRES_PASSWORD=${JUPYTERHUB_POSTGRES_PASSWORD}
405407
- JUPYTERHUB_POSTGRES_DB=${JUPYTERHUB_POSTGRES_DB}
408+
- SONARQUBE_POSTGRES_INIT=${SONARQUBE_POSTGRES_INIT}
409+
- SONARQUBE_POSTGRES_DB=${SONARQUBE_POSTGRES_DB}
410+
- SONARQUBE_POSTGRES_USER=${SONARQUBE_POSTGRES_USER}
411+
- SONARQUBE_POSTGRES_PASSWORD=${SONARQUBE_POSTGRES_PASSWORD}
406412
networks:
407413
- backend
408414

@@ -1421,3 +1427,26 @@ services:
14211427
- "${MANTICORE_HTTP_PORT}:9308"
14221428
networks:
14231429
- backend
1430+
1431+
### SONARQUBE ################################################
1432+
sonarqube:
1433+
build:
1434+
context: ./sonarqube
1435+
hostname: "${SONARQUBE_HOSTNAME}"
1436+
volumes:
1437+
- ${DATA_PATH_HOST}/sonarqube/conf:/opt/sonarqube/conf
1438+
- ${DATA_PATH_HOST}/sonarqube/data:/opt/sonarqube/data
1439+
- ${DATA_PATH_HOST}/sonarqube/logs:/opt/sonarqube/logs
1440+
- ${DATA_PATH_HOST}/sonarqube/extensions:/opt/sonarqube/extensions
1441+
- ${DATA_PATH_HOST}/sonarqube/plugins:/opt/sonarqube/lib/bundled-plugins
1442+
ports:
1443+
- ${SONARQUBE_PORT}:9000
1444+
depends_on:
1445+
- postgres
1446+
environment:
1447+
- sonar.jdbc.username=${SONARQUBE_POSTGRES_USER}
1448+
- sonar.jdbc.password=${SONARQUBE_POSTGRES_PASSWORD}
1449+
- sonar.jdbc.url=jdbc:postgresql://${SONARQUBE_POSTGRES_HOST}:5432/${SONARQUBE_POSTGRES_DB}
1450+
networks:
1451+
- backend
1452+
- frontend

env-example

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -676,3 +676,19 @@ MANTICORE_HTTP_PORT=9308
676676
PGADMIN_PORT=5050
677677
PGADMIN_DEFAULT_EMAIL=pgadmin4@pgadmin.org
678678
PGADMIN_DEFAULT_PASSWORD=admin
679+
680+
### SONARQUBE ################################################
681+
## docker-compose up -d sonarqube
682+
## (If you encounter a database error)
683+
## docker-compose exec --user=root postgres
684+
## source docker-entrypoint-initdb.d/init_sonarqube_db.sh
685+
## (If you encounter logs error)
686+
## docker-compose run --user=root --rm sonarqube chown sonarqube:sonarqube /opt/sonarqube/logs
687+
688+
SONARQUBE_HOSTNAME=sonar.example.com
689+
SONARQUBE_PORT=9000
690+
SONARQUBE_POSTGRES_INIT=true
691+
SONARQUBE_POSTGRES_HOST=postgres
692+
SONARQUBE_POSTGRES_DB=sonar
693+
SONARQUBE_POSTGRES_USER=sonar
694+
SONARQUBE_POSTGRES_PASSWORD=sonarPass
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
*.sh
22
!init_gitlab_db.sh
33
!init_jupyterhub_db.sh
4+
!init_sonarqube_db.sh

postgres/docker-entrypoint-initdb.d/init_jupyterhub_db.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
# EOSQL
3434
#
3535
### default database and user for jupyterhub ##############################################
36-
if [ $JUPYTERHUB_POSTGRES_INIT == 'true' ]; then
36+
if [ "$JUPYTERHUB_POSTGRES_INIT" == 'true' ]; then
3737
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
3838
CREATE USER $JUPYTERHUB_POSTGRES_USER WITH PASSWORD '$JUPYTERHUB_POSTGRES_PASSWORD';
3939
CREATE DATABASE $JUPYTERHUB_POSTGRES_DB;
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#!/bin/bash
2+
#
3+
# Copy createdb.sh.example to createdb.sh
4+
# then uncomment then set database name and username to create you need databases
5+
#
6+
# example: .env POSTGRES_USER=appuser and need db name is myshop_db
7+
#
8+
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
9+
# CREATE USER myuser WITH PASSWORD 'mypassword';
10+
# CREATE DATABASE myshop_db;
11+
# GRANT ALL PRIVILEGES ON DATABASE myshop_db TO myuser;
12+
# EOSQL
13+
#
14+
# this sh script will auto run when the postgres container starts and the $DATA_PATH_HOST/postgres not found.
15+
#
16+
#
17+
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
18+
# CREATE USER db1 WITH PASSWORD 'db1';
19+
# CREATE DATABASE db1;
20+
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
21+
# EOSQL
22+
#
23+
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
24+
# CREATE USER db2 WITH PASSWORD 'db2';
25+
# CREATE DATABASE db2;
26+
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
27+
# EOSQL
28+
#
29+
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
30+
# CREATE USER db3 WITH PASSWORD 'db3';
31+
# CREATE DATABASE db3;
32+
# GRANT ALL PRIVILEGES ON DATABASE db3 TO db3;
33+
# EOSQL
34+
#
35+
### default database and user for gitlab ##############################################
36+
if [ "$SONARQUBE_POSTGRES_INIT" == 'true' ]; then
37+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
38+
CREATE USER $SONARQUBE_POSTGRES_USER WITH PASSWORD '$SONARQUBE_POSTGRES_PASSWORD';
39+
CREATE DATABASE $SONARQUBE_POSTGRES_DB;
40+
GRANT ALL PRIVILEGES ON DATABASE $SONARQUBE_POSTGRES_DB TO $SONARQUBE_POSTGRES_USER;
41+
ALTER ROLE $SONARQUBE_POSTGRES_USER CREATEROLE SUPERUSER;
42+
EOSQL
43+
echo
44+
fi

sonarqube/Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
FROM sonarqube:latest
2+
3+
LABEL maintainer="xiagw <fxiaxiaoyu@gmail.com>"

0 commit comments

Comments
 (0)