blob: e4cbb0d41806f619117e999b3e1e472b3db6c6b8 [file] [log] [blame]
version: '3'
networks:
kibble:
driver: bridge
services:
# Helper service to setup the Apache Kibble es node
setup:
image: &img apache/kibble
build:
context: .
dockerfile: Dockerfile.dev
command: bash -c "kibble setup --autoadmin --skiponexist"
volumes:
- .:/kibble/
depends_on:
- elasticsearch
networks:
- kibble
# Apache Kibble API server
kibble:
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:
- kibble
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: