blob: f854d982306111e1e9adfe965ba7e00044865536 [file] [log] [blame]
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: