M1 Mac - 引导ElasticSearch时出现问题。无法运行jdk/bin/java。

19

搜索了一番但没有结果。尝试使用Elasticsearch docker容器设置项目。在我较旧的英特尔MacBook上工作,但在新系统上迄今为止没有运气。

elasticsearch    | Exception in thread "main" java.io.IOException: Cannot run program "/usr/share/elasticsearch/jdk/bin/java": error=0, Failed to exec spawn helper.
elasticsearch    |  at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
elasticsearch    |  at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
elasticsearch    |  at org.elasticsearch.tools.launchers.JvmErgonomics.flagsFinal(JvmErgonomics.java:111)
elasticsearch    |  at org.elasticsearch.tools.launchers.JvmErgonomics.finalJvmOptions(JvmErgonomics.java:88)
elasticsearch    |  at org.elasticsearch.tools.launchers.JvmErgonomics.choose(JvmErgonomics.java:59)
elasticsearch    |  at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:95)
elasticsearch    | Caused by: java.io.IOException: error=0, Failed to exec spawn helper.
elasticsearch    |  at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
elasticsearch    |  at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:319)
elasticsearch    |  at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:250)
elasticsearch    |  at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
elasticsearch    |  ... 5 more
elasticsearch exited with code 1

非常感激任何帮助或指向正确方向的建议!

4个回答

27

我也遇到了来自dockerhub的镜像问题,但是使用Elastic官方提供的Docker构建版本在我的M1 Mac上运行良好。

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.2

这个解决方案修复了问题!感谢你的帮助! - jesseb
1
这个解决方案对我在 M1 上也起作用了 :-) - unicorn80
版本 7.10.2 :) - Joshua Hester
有趣,非常感谢,它有效。 - Chau Giang
$ docker --version Docker版本20.10.8,构建版本3967b7d $ docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.2 警告:所请求的镜像平台(linux/amd64)与检测到的主机平台(linux/arm64/v8)不匹配,并且没有请求特定平台。 主线程中的异常“java.io.IOException”:无法运行程序“/usr/share/elasticsearch/jdk/bin/java”:错误=0,无法执行生成助手:pid:233,退出值:1 指定“docker run --platform=linux/amd64”失败,有什么想法吗? - Luke Rodgers

7

2

以下配置在M1 Mac上适用于我

docker-compose.yml

version: '3.5'

services:

  my-elasticsearch:
    container_name: my-elasticsearch
    environment:
      - discovery.type=single-node
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.6
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - my-elasticsearch-data:/usr/share/elastiscsearch/data:rw

0

将 Elasticsearch 版本从7.5.1 更改为 7.10.2。(ELK_VERSION=7.10.2)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接