Le bot twitter que nous détaillerons plus tard ne fonctionne pas seul. Il lui faut une base de données pour stocker les messages reçus et les analyser. Nous devons donc avoir une instance Elasticsearch et une instance Kibana qui tourne en simultané pour pouvoir travailler. Nous avons décidé de dockeriser ces deux services, pour des raisons de facilité. En effet un simple fichier docker-compose contient l’ensemble des informations qu’il nous faut pour avoir les deux programmes.
Nous lançons donc un docker-file, qui lance deux conteneurs. Elasticsearch écoute sur les ports 9200 et 9300 de la machine, et Kibana sur le port 5601.
version: '3.7'
services:
# Elasticsearch Docker Images: https://www.docker.elastic.co/
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
container_name: elasticsearch
restart: always
environment:
- xpack.security.enabled=false
- discovery.type=single-node
- node.name=elastic
- cluster.name=es-docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
cap_add:
- IPC_LOCK
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
kibana:
container_name: kibana
image: docker.elastic.co/kibana/kibana:7.5.0
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- 5601:5601
depends_on:
- elasticsearch
volumes:
elasticsearch-data:
driver: local
Pour lancer les dockers :
docker compose up -d
On obtient ainsi :
┌──(botme㉿debian)-[~/Documents/bot-twitter]
└─$ docker ps 130 ⨯
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
862bc9d88331 docker.elastic.co/kibana/kibana:7.5.0 "/usr/local/bin/dumb…" 2 weeks ago Up 2 weeks 0.0.0.0:5601->5601/tcp, :::5601->5601/tcp kibana
568d5c03a527 docker.elastic.co/elasticsearch/elasticsearch:7.5.0 "/usr/local/bin/dock…" 2 weeks ago Up 2 weeks 0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp elasticsearch