主要是利用命令envsubst能实现变量的替换并生成新得配置文件以及docker命令行的变量输入等。
本次实验主要是编写flume镜像,并在容器启动(docker run)时动态修改配置文件并启动,并向flume发数据,然后发给kafka。
此实验的基础:
会dockerfile的编写,熟悉flume服务,kafka服务。
步骤:
1、dockerfile文件如下:
FROM centos
WORKDIR/opt
COPY jdk-8u241-linux-x64.rpm /root
RUN rpm-i /root/jdk-8u241-linux-x64.rpm # 安装jdk
RUNyum install -y gettext # 安装 envsubst命令
COPY flume ./flume/EXPOSE5140/udp
VOLUME/tmp/logs/CMD envsubst< /opt/flume/conf/flume.conf.template > /opt/flume/conf/flume.conf && ./flume/bin/flume-ng agent -c ./flume/conf/ -f ./flume/conf/flume.conf --name agent -Dflume.root.logger=INFO,console
# envsubst根据flume.conf.template这个配置文件替换变量并生成flume.conf。
flume的配置文件如下:
agent.sources = s1
agent.sinks = k1
agent.channels = c1
a