【问题标题】:Docker elasticsearch 1.7 executable file not found in $PATH"在 $PATH 中找不到 Docker elasticsearch 1.7 可执行文件”
【发布时间】:2018-05-23 04:28:18
【问题描述】:

我正在尝试为 elasticsearch 1.7 运行 docker 容器。下面是我的 Dockerfile:

FROM ubuntu:16.04

RUN apt-get update \
    && apt-get install -y curl zip unzip vim software-properties-common \
    && echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections \
    && add-apt-repository -y ppa:webupd8team/java \
    && apt-get update \
    && apt-get install -y oracle-java8-installer \
    && wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add - \
    && echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" |  tee -a /etc/apt/sources.list.d/elasticsearch-1.7.list \
    && apt-get update \
    && apt-get install -y elasticsearch \
    && echo "network.host: localhost" >> /etc/elasticsearch/elasticsearch.yml


EXPOSE 9200

CMD ["elasticsearch"]

Docker 构建工作正常。但是 docker run 命令给了我这个错误:来自守护进程的错误响应:oci 运行时错误:container_linux.go:265:启动容器进程导致“exec:\”elasticsearch\”:可执行在 $PATH 中找不到文件”

我使用的是 Mac 和 Docker 版本是:17.09.0-ce

【问题讨论】:

    标签: docker elasticsearch dockerfile ubuntu-16.04


    【解决方案1】:

    这是几天前的问题 - 你解决了吗?错误消息准确地说明了问题所在(尽管我不确定为什么会出现问题)。

    我在此基础上做了一个 docker build。这是$PATH

    root@96f969e3ab3d:/# echo $PATH
    > /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    

    这里是安装 elasticsearch 的地方(显然):

    root@96f969e3ab3d:/# find / -name 'elasticsearch' -type f
    > /etc/default/elasticsearch
    > /etc/init.d/elasticsearch
    > /usr/share/lintian/overrides/elasticsearch
    > /usr/share/elasticsearch/bin/elasticsearch
    

    基于此,elasticsearch 似乎安装在/usr/share/elasticsearch/bin/elasticsearch。我认为最简单的解决方案是将CMD 设置为该完整路径:

    CMD ["/usr/share/elasticsearch/bin/elasticsearch"]
    

    话虽如此,elasticsearch 还有很多它需要的其他数据——仅仅运行该命令似乎不起作用。基于how complex their dockerfile 和我在/etc/init.d/elasticsearch 中看到的内容(如果安装在服务器上而不是容器内,elasticsearch 将如何运行),我将推荐使用他们的官方容器而不是尝试构建自己的。

    【讨论】:

      猜你喜欢
      • 2019-01-16
      • 2015-01-25
      • 2021-11-23
      • 2017-09-25
      • 2016-04-19
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多