我在基于ubuntu:16.04
的镜像中安装了Elasticsearch。
并使用以下命令启动服务
RUN service elasticsearch start
但是,它并没有启动。
如果我进入容器并运行它,它就会启动。
我想在创建镜像时运行服务并转储索引,下面是我的Dockerfile的一部分。
如何在Dockerfile中启动Elasticsearch?
#install OpenJDK-8
RUN apt-get update && apt-get install -y openjdk-8-jdk && apt-get install -y ant && apt-get clean
RUN apt-get update && apt-get install -y ca-certificates-java && apt-get clean
RUN update-ca-certificates -f
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME
#download ES
RUN wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
RUN apt-get install -y apt-transport-https
RUN echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-6.x.list
RUN apt-get update && apt-get install -y elasticsearch
RUN service elasticsearch start
发布于 2019-03-14 06:36:15
RUN
命令仅在构建阶段执行。它会在构建完成后停止。您应该改用CMD
(或ENTRYPOINT
):
CMD service elasticsearch start && /bin/bash
最好将启动命令包装在您自己的文件中,然后只执行该文件:
CMD /start_elastic.sh
发布于 2019-03-14 07:09:15
我不知道为什么不采取官方开放源码软件的形象,但是,this Docker file基于Debian的工作:
FROM java:8-jre
ENV ES_NAME=elasticsearch \
ELASTICSEARCH_VERSION=6.6.1
ENV ELASTICSEARCH_URL=https://artifacts.elastic.co/downloads/$ES_NAME/$ES_NAME-$ELASTICSEARCH_VERSION.tar.gz
RUN apt-get update && apt-get install -y --assume-yes openssl bash curl wget \
&& mkdir -p /opt \
&& echo '[i] Start create elasticsearch' \
&& wget -T 15 -O /tmp/$ES_NAME-$ELASTICSEARCH_VERSION.tar.gz $ELASTICSEARCH_URL \
&& tar -xzf /tmp/$ES_NAME-$ELASTICSEARCH_VERSION.tar.gz -C /opt/ \
&& ln -s /opt/$ES_NAME-$ELASTICSEARCH_VERSION /opt/$ES_NAME \
&& useradd elastic \
&& mkdir -p /var/lib/elasticsearch /opt/$ES_NAME/plugins /opt/$ES_NAME/config/scripts \
&& chown -R elastic /opt/$ES_NAME-$ELASTICSEARCH_VERSION/
ENV PATH=/opt/elasticsearch/bin:$PATH
USER elastic
CMD [ "/bin/sh", "-c", "/opt/elasticsearch/bin/elasticsearch --E cluster.name=test --E network.host=0 $ELASTIC_CMD_OPTIONS" ]
我相信你能在Ubuntu上使用的大多数命令。
别忘了在你的主机上运行sudo sysctl -w vm.max_map_count=262144
https://stackoverflow.com/questions/55156199
复制