当使用docker-compose启动Elasticsearch7时,遇到退出代码78的情况时的处理方法

这是什么东西

以下是在使用docker-compose启动Elasticsearch7.3.2时遇到的错误,并记录了解决方法。

elasticsearch_1  | {"type": "server", "timestamp": "2019-09-22T03:27:53,917+0000", "level": "INFO", "component": "o.e.x.m.p.NativeController", "cluster.name": "docker-cluster", "node.name": "37092a04af2c",  "message": "Native controller process has stopped - no new native processes can be started"  }
local_elasticsearch_1 exited with code 78

当初的Dockerfile和docker-compose.yml

出现错误时,我也会先把文件存放在那儿。

Dockerfile从 docker.elastic.co/elasticsearch/elasticsearch:7.3.2 导入
运行 elasticsearch-plugin install analysis-kuromoji

docker-compose.ymldocker-compose.yml
版本: ‘3’

卷:
es-data:
驱动程序: 本地

服务:
elasticsearch:
构建: ./elasticsearch
卷:
– es-data:/usr/share/elasticsearch/data
端口:
– “9200:9200”

应对方法

看起来Elastisearch7增加了一些配置。我会参考官方文档进行相应的处理。
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

我已根据以下内容配置了Dockerfile和docker-compose.yml文件,并确认了Elasticsearch的启动。

FROM docker.elastic.co/elasticsearch/elasticsearch:7.3.2

# 日本語全文検索pulgin
RUN elasticsearch-plugin install analysis-kuromoji
version: '3'

volumes:
  es-data:
    driver: local

services:
  elasticsearch:
    build: ./elasticsearch
    volumes:
      - es-data:/usr/share/elasticsearch/data
    environment:
      - discovery.type=single-node
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - "9200:9200"

环境和资源限制(ulimits)似乎很重要。

动作确认如下。

$ curl -X GET http://localhost:9200

{
  "name" : "d303b5e351a4",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "7h4hvetmRHaM-Kp6rVcQiA",
  "version" : {
    "number" : "7.3.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "1c1faf1",
    "build_date" : "2019-09-06T14:40:30.409026Z",
    "build_snapshot" : false,
    "lucene_version" : "8.1.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

由于Elasticsearch 7版本的设置值增多,因此即使随意参考旧版Elasticsearch的文章也可能无法正常运行,请注意。

bannerAds