我们使用 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/
Run Code Online (Sandbox Code Playgroud)
我们应该如何安装基于 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/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1848 次 |
| 最近记录: |