Docker compose

Explications

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.

Docker-compose


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

Execution

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