Skip to content

Commit e39e92e

Browse files
committed
Dockerfile: optimize layers
Squashed some layers to reduce the amount of layers in the image. Also rearranged some layers to reduce the amount of layers that have to be rebuild. If one layer changes all layers after have to be updated. By moving the ones least likely to change first this means less layers have to be rebuild, pushed and pulled on new releases. Signed-off-by: Marco Franssen <[email protected]>
1 parent ed06c31 commit e39e92e

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

dockerfiles/Dockerfile

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,15 @@ FROM debian:bookworm-slim AS builder-base
2424
COPY --from=qemu-arm32 /usr/bin/qemu-arm-static /usr/bin/
2525
COPY --from=qemu-arm64 /usr/bin/qemu-aarch64-static /usr/bin/
2626

27-
ARG FLB_NIGHTLY_BUILD
28-
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD
27+
ARG FLB_NIGHTLY_BUILD \
28+
FLB_CHUNK_TRACE=On
2929

30-
ARG FLB_CHUNK_TRACE=On
31-
ENV FLB_CHUNK_TRACE=${FLB_CHUNK_TRACE}
30+
ENV FLB_NIGHTLY_BUILD=$FLB_NIGHTLY_BUILD \
31+
FLB_CHUNK_TRACE=${FLB_CHUNK_TRACE} \
32+
DEBIAN_FRONTEND=noninteractive
3233

3334
RUN mkdir -p /fluent-bit/bin /fluent-bit/etc /fluent-bit/log
3435

35-
ENV DEBIAN_FRONTEND=noninteractive
36-
3736
# hadolint ignore=DL3008
3837
RUN echo "deb http://deb.debian.org/debian bookworm-backports main" >> /etc/apt/sources.list && \
3938
apt-get update && \
@@ -68,8 +67,9 @@ FROM builder-base AS builder
6867
WORKDIR /src/fluent-bit/build/
6968

7069
# Required to be set to ARMV7 for that target
71-
ARG WAMR_BUILD_TARGET
72-
ARG EXTRA_CMAKE_FLAGS
70+
ARG WAMR_BUILD_TARGET \
71+
EXTRA_CMAKE_FLAGS
72+
7373
ENV EXTRA_CMAKE_FLAGS=${EXTRA_CMAKE_FLAGS}
7474

7575
# We do not want word splitting for EXTRA_CMAKE_FLAGS in case multiple are defined
@@ -95,8 +95,8 @@ RUN [ -n "${WAMR_BUILD_TARGET:-}" ] && EXTRA_CMAKE_FLAGS="$EXTRA_CMAKE_FLAGS -DW
9595
ARG CFLAGS="-v"
9696
ENV CFLAGS=${CFLAGS}
9797

98-
RUN make -j "$(getconf _NPROCESSORS_ONLN)"
99-
RUN install bin/fluent-bit /fluent-bit/bin/
98+
RUN make -j "$(getconf _NPROCESSORS_ONLN)" && \
99+
install bin/fluent-bit /fluent-bit/bin/
100100

101101
# Configuration files
102102
COPY conf/fluent-bit.conf \
@@ -178,6 +178,7 @@ RUN find /dpkg/ -type d -empty -delete && \
178178
# We want latest at time of build
179179
# hadolint ignore=DL3006
180180
FROM gcr.io/distroless/cc-debian12 AS production
181+
EXPOSE 2020
181182
ARG RELEASE_VERSION
182183
ENV FLUENT_BIT_VERSION=${RELEASE_VERSION}
183184
LABEL description="Fluent Bit multi-architecture container image" \
@@ -193,17 +194,15 @@ LABEL description="Fluent Bit multi-architecture container image" \
193194
org.opencontainers.image.documentation="https://docs.fluentbit.io/" \
194195
org.opencontainers.image.authors="Eduardo Silva <[email protected]>"
195196

196-
# Copy the libraries from the extractor stage into root
197-
COPY --from=deb-extractor /dpkg /
198-
199197
# Copy certificates
200198
COPY --from=builder /etc/ssl/certs /etc/ssl/certs
201199

200+
# Copy the libraries from the extractor stage into root
201+
COPY --from=deb-extractor /dpkg /
202+
202203
# Finally the binaries as most likely to change
203204
COPY --from=builder /fluent-bit /fluent-bit
204205

205-
EXPOSE 2020
206-
207206
# Entry point
208207
ENTRYPOINT [ "/fluent-bit/bin/fluent-bit" ]
209208
CMD ["/fluent-bit/bin/fluent-bit", "-c", "/fluent-bit/etc/fluent-bit.conf"]

0 commit comments

Comments
 (0)