| version: '3' |
| |
| networks: |
| kibble: |
| driver: bridge |
| |
| services: |
| # Main docker image |
| kibble: |
| image: &img apache/kibble |
| build: |
| context: . |
| dockerfile: Dockerfile.dev |
| entrypoint: kibble |
| volumes: |
| - .:/kibble/ |
| depends_on: |
| - elasticsearch |
| networks: |
| - kibble |
| |
| # Apache Kibble API server |
| api: |
| image: *img |
| command: bash -c "gunicorn --reload -w 1 -b 0.0.0.0:8001 kibble.api.handler:application" |
| expose: |
| - 8001 |
| ports: |
| - 8001:8001 |
| volumes: |
| - .:/kibble/ |
| depends_on: |
| - elasticsearch |
| networks: |
| - kibble |
| |
| # Apache Kibble web ui server |
| ui: |
| image: nginx:latest |
| volumes: |
| - ./nginx-dev.conf:/etc/nginx/nginx.conf |
| - ./ui/:/kibble/ui/ |
| ports: |
| - 8000:8000 |
| depends_on: |
| - api |
| networks: |
| - kibble |
| |
| # Elasticsearch node required as a database for Apache Kibble |
| elasticsearch: |
| image: elasticsearch:7.9.2 |
| ports: |
| - 9200:9200 |
| - 9300:9300 |
| environment: |
| node.name: es01 |
| discovery.seed_hosts: es02 |
| cluster.initial_master_nodes: es01 |
| cluster.name: kibble |
| ES_JAVA_OPTS: -Xms256m -Xmx256m |
| ulimits: |
| memlock: |
| soft: -1 |
| hard: -1 |
| volumes: |
| - "kibble-es-data:/usr/share/elasticsearch/data" |
| networks: |
| - kibble |
| |
| # Kibana to view and manage Elasticsearch |
| kibana: |
| image: kibana:7.9.3 |
| ports: |
| - 5601:5601 |
| depends_on: |
| - elasticsearch |
| environment: |
| ELASTICSEARCH_URL: http://elasticsearch:9200 |
| ELASTICSEARCH_HOSTS: http://elasticsearch:9200 |
| networks: |
| - kibble |
| |
| volumes: |
| # named volumes can be managed easier using docker-compose |
| kibble-es-data: |