[英]Cannot determine Elasticsearch version from [elasticsearch --version] or [elasticsearch -v]: shift: can't shift that many
I am running elasticsearch inside a docker container. 我在docker容器中运行elasticsearch。 Dockerfile for the image looks like this:
该映像的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
When I build it 当我建立它
docker build - < .gitlab-ci/Dockerfile.ruby-2.4.1-elasticsearch-1.4.4 -t hirurg103/ruby-2.4.1-elasticsearch-1.4.4
and start an interactive bash session 并开始一个互动的bash会议
docker run -i -t hirurg103/ruby-2.4.1-elasticsearch-1.4.4 bash
and run elasticsearch --version
inside the container I get 并在我得到的容器内运行
elasticsearch --version
/usr/local/bin/elasticsearch: 168: shift: can't shift that many
The elasticsearch bin script on the line 168 looks the following way: 第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
...
Actual problem happens when I start my rspec tests and they fail with 当我开始我的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 --version
is being called from elasticsearch-extensions
ruby gem 从
elasticsearch-extensions
ruby gem调用elasticsearch --version
What is wrong with this script? 这个脚本有什么问题? How can I fix this error?
如何解决此错误?
BTW on my local machine Mac OS 10.14.1 Mojave
and zsh 5.6.2
tests run smoothly 我的本地计算机上的BTW Mac OS
10.14.1 Mojave
和zsh 5.6.2
测试运行顺利
For now I was able to resolve this error by specifying the elasticsearch version directly when initializing Elasticsearch::Extensions::Test::Cluster
: 现在,我能够通过在初始化
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.