封装基于alpine的filebeat—并包含jdk、设置时区
封装基于alpine的filebeat
- 去官网下载filebeat
https://www.elastic.co/cn/beats/filebeat
我下载的是7.3.1版本,如果有其他需求自行更改版本 - 创建文件夹
mkdir /dockerData /dockerData/filebeat7.3.1 dockerData/filebeat7.3.1/filebeat dockerData/filebeat7.3.1/filebeat-base
- 上传filebeat
把下载的filebeat上传到/dockerData/filebeat7.3.1中 - 封装镜像
创建dockerfile
vim dockerfile
添加如下内容
FROM alpine:3.12.4
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# 调整时区
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && apk update
# 注意 这个配置是为了在alpine中运行二进制文件,如果不安装则无法运行
RUN apk add --update-cache curl bash libc6-compat
WORKDIR /opt/filebeat
COPY filebeat-7.3.1-linux-x86_64.tar.gz /opt
RUN cd /opt && \
tar -xzf filebeat-7.3.1-linux-x86_64.tar.gz -C /opt/filebeat --strip-components=1 && \
rm -f filebeat-7.3.1-linux-x86_64.tar.gz && \
chmod +x /opt/filebeat
RUN chmod go-w *
CMD ["/bin/sh"]
wq退出保存
封装镜像alpine-filebeat:7.3.1
docker build --rm -t alpine-filebeat:7.3.1 .
- 二次封装jdk
cd filebeat-base
vim dokcerfile
FROM alpine-filebeat:7.3.1
ENV LANG C.UTF-8
RUN { \
echo '#!/bin/sh'; \
echo 'set -e'; \
echo; \
echo 'dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"'; \
} > /usr/local/bin/docker-java-home \
&& chmod +x /usr/local/bin/docker-java-home
ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk/jre
ENV PATH $PATH:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
ENV JAVA_VERSION 8u275
ENV JAVA_ALPINE_VERSION 8.275.01-r0
RUN set -x \
&& apk add --no-cache \
openjdk8-jre="$JAVA_ALPINE_VERSION" \
&& [ "$JAVA_HOME" = "$(docker-java-home)" ]
CMD ["/bin/sh"]
wq退出保存
封装镜像alpine-filebeat7.3.1-jdk8:0.1
docker build --rm -t alpine-filebeat7.3.1-jdk8:0.1 .
- 结束
至此封装完毕,如有上传docker库需要可以查看这条博客
docker封装镜像并上传