2

I'm trying to run an elastic stack on my RasPi4 using docker compose. Problem is that Elastic does not provide images for ARM archtiecture ... only X86. So raspi is not supported out of the box.

Everytime I start my docker compose config I get this message

7.9.3: Pulling from elasticsearch/elasticsearch
ERROR: no matching manifest for linux/arm/v7 in the manifest list entries

Google search mostly gives results pointing to an unofficial image ... which I would try ... but this one is 4 years old: https://hub.docker.com/r/ind3x/rpi-elasticsearch/. So I guess I don#t get an up to date elasticsearch.

Anyone got an idea on how I get my elastic to run? This is my docker-compose.yml ... pretty straigt forward.

version: '3.3'
services:

  elastic-node-1:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.3
    container_name: elastic-node-1
    restart: always
    environment:
      - node.name=elastic-node-1
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=elastic-node-2
      - cluster.initial_master_nodes=elastic-node-1,elastic-node-2
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - elastic-data-1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic-net

  elastic-node-2:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.3
    container_name: elastic-node-2
    restart: always
    environment:
      - node.name=elastic-node-2
      - cluster.name=es-docker-cluster
      - discovery.seed_hosts=elastic-node-1
      - cluster.initial_master_nodes=elastic-node-1,elastic-node-2
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - elastic-data-2:/usr/share/elasticsearch/data
    ports:
      - 9201:9201
    networks:
      - elastic-net

  kibana:
    image: docker.elastic.co/kibana/kibana:7.9.3
    container_name: kibana
    restart: always
    depends_on:
      - elastic-node-1
      - elastic-node-2
    ports:
      - 5601:5601
    environment:
      ELASTICSEARCH_URL: http://elastic-node-1:9200
      ELASTICSEARCH_HOSTS: http://elastic-node-1:9200
    networks:
      - elastic-net

volumes:
  elastic-data-1:
    driver: local
  elastic-data-2:
    driver: local

networks:
  elastic-net:
    driver: bridge

If there is no way to get this elastic setup to run, can you recommend any other hardware similar to raspi (using linux) which is x86 and can take the place of my raspi? Then I would switch hardware for my elastic stack.

1 Answers1

0

I have made some experience with Elastic in larger business applications so just some additional food for thought - I do not have a direct answer here yet:

  • indeed an image that ks 4 years old is not worth the effort. Elsstic is stable in version 7.x and 8.x is in progress and there have been massive changes.
  • you need to consider that Heapsize available to Elastic actually should be configured to 50% as it is shared with Lucene.
  • meaning Elastic can be quite RAM hungry. Depending on your use case and given the limits of Raspi to max 8GB at this point in time you may want to consider that.

For a small application it may work, but I would not consider it more than experimental.

If you do not have any other way you may have two options:

    • build a docker image (or find someone who is interested enough to join the effort maybe the orinibal author of that old docker image)
    • go step by step and first deploy elastic on a headless raspi standalone (even avoid docker for the moment and reduce any overhead) and then add some elastic node configs (elastic usually only works well with at least three nodes)
  1. indeed build a cluster which offers at least 8 -16 GB per node - I believe an Ubuntu based setup will do with an X86.
Alistair
  • 9
  • 2