125 lines
3.2 KiB
YAML
Executable File
125 lines
3.2 KiB
YAML
Executable File
# To execute this docker-compose yml file use docker-compose -f <file_name> up
|
|
# Add the "-d" flag at the end for detached execution
|
|
version: '3.7'
|
|
services:
|
|
sonarqube:
|
|
container_name: ${APP_NAME}_sonarqube
|
|
image: sonarqube:community
|
|
depends_on:
|
|
- sonarqube_db
|
|
ports:
|
|
- ${SONARQUBE_PORT}:9000
|
|
networks:
|
|
- sonarnet
|
|
environment:
|
|
SONAR_JDBC_URL: jdbc:postgresql://sonarqube_db:5432/sonar
|
|
SONAR_JDBC_USERNAME: sonar
|
|
SONAR_JDBC_PASSWORD: sonar
|
|
volumes:
|
|
- sonarqube_data:/opt/sonarqube/data
|
|
- sonarqube_extensions:/opt/sonarqube/extensions
|
|
- sonarqube_logs:/opt/sonarqube/logs
|
|
- sonarqube_temp:/opt/sonarqube/temp
|
|
sonarqube_db:
|
|
container_name: ${APP_NAME}_sonarqube_db
|
|
image: postgres:alpine
|
|
networks:
|
|
- sonarnet
|
|
environment:
|
|
POSTGRES_USER: sonar
|
|
POSTGRES_PASSWORD: sonar
|
|
ports:
|
|
- ${SONARQUBE_DB_PORT}:5432
|
|
volumes:
|
|
- sonarqube_postgresql:/var/lib/postgresql
|
|
# This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52
|
|
- sonarqube_postgresql_data:/var/lib/postgresql/data
|
|
|
|
openapi:
|
|
container_name: ${APP_NAME}_openapi
|
|
image: swaggerapi/swagger-ui
|
|
ports:
|
|
- ${OPENAPI_PORT}:8080
|
|
environment:
|
|
URL: "http://localhost:8080"
|
|
|
|
rabbitmq:
|
|
container_name: ${APP_NAME}_rabbitmq
|
|
image: rabbitmq:management-alpine
|
|
ports:
|
|
- ${RABBITMQ_PORT}:5672
|
|
- ${RABBITMQ_MANAGEMENT_PORT}:15672
|
|
|
|
redis:
|
|
container_name: ${APP_NAME}_redis
|
|
image: redis:6-alpine
|
|
ports:
|
|
- ${REDIS_PORT}:6379
|
|
volumes:
|
|
- redis-data:/var/lib/redis:rw
|
|
|
|
app:
|
|
container_name: ${APP_NAME}_app
|
|
build:
|
|
context: .
|
|
dockerfile: docker/app/Dockerfile
|
|
ports:
|
|
- ${APP_PORT}:8080
|
|
environment:
|
|
DB_HOST: ${DB_HOST}
|
|
SEND_GRID_KEY: ${SEND_GRID_KEY}
|
|
REDIS_CONNECTION: ${REDIS_CONNECTION}
|
|
RABBITMQ_CONNECTION: ${RABBITMQ_CONNECTION}
|
|
ELASTICSEARCH_CONNECTION: ${ELASTICSEARCH_CONNECTION}
|
|
depends_on:
|
|
- elasticsearch
|
|
- db
|
|
- redis
|
|
- rabbitmq
|
|
|
|
elasticsearch:
|
|
container_name: ${APP_NAME}_elasticsearch
|
|
image: elasticsearch:6.7.1
|
|
ports:
|
|
- ${ELASTIC_REST}:9200
|
|
- ${ELASTIC_NODES}:9300
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://elasticsearch:9200"]
|
|
interval: 3s
|
|
timeout: 2s
|
|
retries: 20
|
|
|
|
db:
|
|
container_name: ${APP_NAME}_postgresql
|
|
build:
|
|
context: docker/postgresql
|
|
ports:
|
|
- ${POSTGRESQL_PORT}:5432
|
|
environment:
|
|
POSTGRES_PASSWORD: ${DB_NAME}
|
|
POSTGRES_USER: ${DB_USER}
|
|
POSTGRES_DB: ${DB_PWD}
|
|
volumes:
|
|
- ./var/log/postgresql:/var/log/postgresql:rw
|
|
- db-data:/var/lib/postgresql/data:rw
|
|
depends_on:
|
|
- elasticsearch
|
|
healthcheck:
|
|
test: [ "CMD", "pg_isready", "-q", "-d", "${DB_NAME}", "-U", "${DB_USER}" ]
|
|
interval: 3s
|
|
timeout: 2s
|
|
retries: 20
|
|
|
|
networks:
|
|
sonarnet:
|
|
driver: bridge
|
|
|
|
volumes:
|
|
db-data:
|
|
redis-data:
|
|
sonarqube_data:
|
|
sonarqube_extensions:
|
|
sonarqube_logs:
|
|
sonarqube_temp:
|
|
sonarqube_postgresql:
|
|
sonarqube_postgresql_data: |