docker 构建filebeat镜像

64 篇文章 1 订阅
59 篇文章 0 订阅

1. 获取filebeat包

 # 创建构建用的目录

mkdir -p /opt/docker/build/filebeat

从官网(Download Filebeat • Lightweight Log Analysis | Elastic)获取tar.gz包(https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.14.2-linux-x86_64.tar.gz),并将tar.gz包上传到/opt/docker/build/filebeat目录下。

2. 创建dockerfile、docker-entrypoint.sh

 # 编辑dockerfile

cd /opt/docker/build/filebeat
vi dockerfile

 # 将下面的内容添加到dockerfile文件内并保存。

FROM ubuntu:18.04

WORKDIR /usr/share/filebeat

COPY filebeat-7.14.2-linux-x86_64.tar.gz /usr/share

RUN cd /usr/share && \
    tar -xzf filebeat-7.14.2-linux-x86_64.tar.gz -C /usr/share/filebeat --strip-components=1 && \
    rm -f filebeat-7.14.2-linux-x86_64.tar.gz && \
    chmod +x /usr/share/filebeat

ADD ./docker-entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["/usr/share/filebeat/filebeat","-e","-c","/usr/share/filebeat/filebeat.yml"]

 PS.

 1.设置的工作目录和之前的不太一样,是因为最近搭建elk时根据官方给的elk镜像目录进行的调整。

 2.这里选择ubuntu的原因是其作为底层打包出来的镜像比centos要小很多。我曾经尝试使用alpine:3.7作为底层,但是构建后的镜像运行时报“standard_init_linux.go:190: exec user process caused "no such file or directory"”,故最后还是选择ubuntu。

 # 编辑docker-entrypoint.sh

vi docker-entrypoint.sh

 # 将下面的内容添加到docker-entrypoint.sh文件内并保存。

#!/bin/bash
set -e 
TMP=${PATHS}
config=/usr/share/filebeat/filebeat.yml
if [ ${TMP:0:1} = '/' ] ;then
    tmp='"'${PATHS}'"'
fi

env
echo 'Filebeat init process done. Ready for start up.'
echo "Using the following configuration:"
cat /usr/share/filebeat/filebeat.yml
exec "$@"

3. 构建镜像

 # 构建

cd /opt/docker/build/filebeat
docker build --rm -t filebeat:7.14.2 .

构建完成后,通过docker images可以看到多了一个filebeat:7.14.2的镜像。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值