summaryrefslogtreecommitdiffstats
path: root/fluent-bit/examples/kafka_filter/Dockerfile
blob: 5a18e63e617eb35da1804870cd63c92a286b2244 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
FROM debian:bullseye-slim as builder
ENV DEBIAN_FRONTEND noninteractive
ENV KAFKA_URL https://downloads.apache.org/kafka/3.4.1/kafka_2.13-3.4.1.tgz
ENV KAFKA_SHA256 a76f17a52b8f2cd31de11571ff366a714820b6e4e02893b0159d09db0edaf998

# hadolint ignore=DL3008
RUN apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y --no-install-recommends \
    build-essential \
    curl \
    ca-certificates \
    cmake \
    pkg-config \
    libsasl2-dev \
    libssl-dev \
    flex \
    openjdk-11-jre-headless \
    bison \
    netcat-openbsd \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Download kafka to access "kafka-topics" script
WORKDIR /kafka
RUN bash -c 'curl -L $KAFKA_URL | tee kafka.tgz | sha256sum -c <(echo "$KAFKA_SHA256 -")' \
    && tar --strip-components=1 -xf kafka.tgz \
    && mv /kafka/bin/kafka-topics.sh /kafka/bin/kafka-topics
ENV PATH="${PATH}:/kafka/bin"

WORKDIR /build/
COPY . /source
RUN cmake -DFLB_DEV=On \
          -DFLB_IN_KAFKA=On \
          -DFLB_OUT_KAFKA=On \
          -DFLB_CONFIG_YAML=Off \
          /source && \
    cmake --build . --parallel

FROM builder as runner
COPY --from=builder /build/bin/fluent-bit /usr/local/bin/fluent-bit
COPY examples/kafka_filter/kafka.conf /etc/kafka.conf
COPY examples/kafka_filter/kafka.lua /etc/kafka.lua
CMD ["/usr/local/bin/fluent-bit", "-c", "/etc/kafka.conf"]