簡體   English   中英

無法從[elasticsearch --version]或[elasticsearch -v]確定Elasticsearch版本:shift:無法移動那么多

[英]Cannot determine Elasticsearch version from [elasticsearch --version] or [elasticsearch -v]: shift: can't shift that many

我在docker容器中運行elasticsearch。 該映像的Dockerfile如下所示:

# Dockerfile.ruby-2.4.1-elasticsearch-1.4.4
FROM ruby:2.4.1

# Install Java 8
RUN echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list && \
  echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list && \
  apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 && \
  apt-get update && \
  echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \
  apt-get install -y oracle-java8-installer && \
  apt-get clean

# Download and unpack elasticsearch 1.4.4
RUN wget -q -O elasticsearch-1.4.4.tar.gz https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.4.4.tar.gz && \
  tar -xzf elasticsearch-1.4.4.tar.gz && \
  mv elasticsearch-1.4.4 $HOME/.elasticsearch && \
  ln -s $HOME/.elasticsearch/bin/elasticsearch /usr/local/bin/elasticsearch && \
  mkdir -p /usr/local/share/elasticsearch/ && \
  cp $HOME/.elasticsearch/bin/elasticsearch.in.sh /usr/local/share/elasticsearch/ && \
  rm elasticsearch-1.4.4.tar.gz

當我建立它

docker build - < .gitlab-ci/Dockerfile.ruby-2.4.1-elasticsearch-1.4.4 -t hirurg103/ruby-2.4.1-elasticsearch-1.4.4

並開始一個互動的bash會議

docker run -i -t hirurg103/ruby-2.4.1-elasticsearch-1.4.4 bash

並在我得到的容器內運行elasticsearch --version

/usr/local/bin/elasticsearch: 168: shift: can't shift that many

第168行的elasticsearch bin腳本看起來如下:

...
# Parse any long getopt options and put them into properties before calling getopt below
# Be dash compatible to make sure running under ubuntu works
ARGV=""
while [ $# -gt 0 ]
do
    case $1 in
      --*=*) properties="$properties -Des.${1#--}"
           shift 1
           ;;
      --*) properties="$properties -Des.${1#--}=$2"
           shift 2
           ;;
      *) ARGV="$ARGV $1" ; shift
    esac
done
...

當我開始我的rspec測試時,實際問題發生了,並且失敗了

/usr/local/bin/elasticsearch: 168: shift: can't shift that many
rake aborted!
Cannot determine Elasticsearch version from [elasticsearch --version] or [elasticsearch -v]

elasticsearch-extensions ruby gem調用elasticsearch --version

這個腳本有什么問題? 如何解決此錯誤?

我的本地計算機上的BTW Mac OS 10.14.1 Mojave和zsh 5.6.2測試運行順利

現在,我能夠通過在初始化Elasticsearch::Extensions::Test::Cluster時直接指定elasticsearch版本來解決此錯誤:

require 'elasticsearch/extensions/test/cluster'
Elasticsearch::Extensions::Test::Cluster.start(
  port: 9250,
  version: '1.0'
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM