# Fluffy # Copyright (c) 2023-2024 Status Research & Development GmbH # Licensed and distributed under either of # * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT). # * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0). # at your option. This file may not be copied, modified, or distributed except according to those terms. FROM debian:stable-slim AS build ENV DEBIAN_FRONTEND=noninteractive TZ="Etc/UTC" ENV NPROC=2 ENV NIMFLAGS_COMMON="-d:disableMarchNative --gcc.options.debug:'-g1' --clang.options.debug:'-gline-tables-only'" RUN apt update \ && apt install make bash build-essential git -y \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* COPY ../../ /nimbus-eth1 WORKDIR /nimbus-eth1 RUN mv vendor vendor.orig RUN --mount=type=cache,target=/nimbus-eth1/build --mount=type=cache,target=/nimbus-eth1/vendor \ mv vendor.orig vendor && \ make -j${NPROC} NIMFLAGS="${NIMFLAGS_COMMON} --parallelBuild:${NPROC}" V=1 update RUN --mount=type=cache,target=/nimbus-eth1/build --mount=type=cache,target=/nimbus-eth1/vendor \ make -j${NPROC} NIMFLAGS="${NIMFLAGS_COMMON} --parallelBuild:${NPROC}" fluffy && \ mv build/fluffy /usr/local/bin/fluffy # --------------------------------- # # Starting new image to reduce size # # --------------------------------- # FROM debian:stable-slim AS deploy COPY --from=build /usr/local/bin/fluffy /usr/local/bin/fluffy ENTRYPOINT ["/usr/local/bin/fluffy"]