我们使用Elastic的Logstash Docker镜像(docker.elastic.co/logstash/logstash-oss:6.1.2)作为我们自己的Logstash Docker镜像构建的基础,其中我们需要包含几个logstash插件来满足我们自己的需求。但是,当我们查看/opt/logstash/bin下的基本图像时,我们可以看到有一个logstash-plugin.bat文件,但没有logstash-plugin.sh文件。这个文件是不是丢失了,或者我们看到的是安装镜像的错误命令?
这是我们的Dockerfile,它在构建时没有将给定的插件包含到新的镜像中:
FROM docker.elastic.co/logstash/logstash-oss:6.1.2
ENV LOGSTASH_HOME /opt/logstash
WORKDIR ${LOGSTASH_HOME}
RUN rm -f /usr/share/logstash/pipeline/logstash.conf \
bin/logstash-plugin install logstash-input-kafka \
bin/logstash-plugin install logstash-filter-prune
ADD pipeline/ /usr/share/logstash/pipeline/
ADD config/ /usr/share/logstash/config/我们应该如何安装基于Elastic的logstash Docker镜像v6.1.2的Logstash插件?
发布于 2018-01-31 19:22:40
问题出在Dockerfile本身,它在运行命令之间缺少&&,因此从文件夹中删除了logstash-plugin,而不是执行它来安装插件。
正确的Dockerfile:
FROM docker.elastic.co/logstash/logstash-oss:6.1.2
ENV LOGSTASH_HOME /opt/logstash
WORKDIR ${LOGSTASH_HOME}
RUN rm -f /usr/share/logstash/pipeline/logstash.conf && \
bin/logstash-plugin install logstash-input-kafka && \
bin/logstash-plugin install logstash-filter-prune
ADD pipeline/ /usr/share/logstash/pipeline/
ADD config/ /usr/share/logstash/config/https://stackoverflow.com/questions/48524207
复制相似问题