ITUDevUps/devUps

View on GitHub
docker-compose.yml

Summary

Maintainability
Test Coverage
# Please refer https://aka.ms/HTTPSinContainer on how to setup an https developer certificate for your ASP .NET Core service.

version: "3.4"

services:
  minitwitbackend:
    build: ./minitwit-backend
    container_name: minitwit-backend
    ports:
      - 3005:3005
      - 3006:3006
    environment:
      - ASPNETCORE_HTTP_PORT=https://+:3006
      - ASPNETCORE_URLS=http://+:3005
      - ASPNETCORE_ENVIRONMENT=Development
    volumes:
      - type: bind
        source: ./databasefile
        target: /databasefile
    networks:
        - itu-minitwit-network
        - elastic
    depends_on:
        - grafana
        - prometheus
        - kibana

  minitwitfrontend:
    build: ./minitwit-frontend
    container_name: minitwit-frontend
    ports:
      - 3000:3000
    networks:
        - itu-minitwit-network
        - elastic
    depends_on:
        - minitwitbackend
        - prometheus
        - grafana

  prometheus:
      image: prom/prometheus:latest
      container_name: prometheus
      volumes:
          - ./prometheus.yml:/etc/prometheus/prometheus.yml
          - prometheus-storage:/prometheus
      ports:
          - 9090:9090
      networks:
          - itu-minitwit-network

  grafana:
      image: grafana/grafana:latest
      container_name: grafana
      environment:
        GF_SERVER_HTTP_PORT: 9099
      volumes:
        - ./grafana-storage:/var/lib/grafana
      ports:
          - 9099:9099
      networks:
          - itu-minitwit-network
      depends_on:
          - prometheus

  elasticsearch:
    container_name: elasticsearch
    image: docker.elastic.co/elasticsearch/elasticsearch:8.7.0
    ports:
      - 9200:9200
    volumes:
      - elasticsearch-data:/usr/share/elasticsearch/data
    environment:
        - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
        - "discovery.type=single-node"
        - "xpack.security.enabled=false"
    networks:
      - elastic

  kibana:
    container_name: kibana
    image: docker.elastic.co/kibana/kibana:8.7.0
    ports:
      - 5601:5601
    depends_on:
      - elasticsearch
    environment:
      - ELASTICSEARCH_URL=http://localhost:9200
      - "elasticsearch.hosts='[\"http://elasticsearch:9200\"]'"
      - "xpack.security.enabled=false"
    networks:
      - elastic

networks:
  itu-minitwit-network:
  elastic:
    driver: bridge

volumes:
  elasticsearch-data:
  grafana-storage:
  prometheus-storage: