我们使用 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 插件?
最佳答案
问题在于 Dockerfile 本身丢失了 &&
在 RUN 命令之间,因此从文件夹中删除了 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/
关于docker - Logstash Docker 镜像 - 缺少 logstash 插件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48524207/