61 lines
1.9 KiB
Docker
61 lines
1.9 KiB
Docker
# Nimbus
|
|
# Copyright (c) 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.
|
|
|
|
|
|
# Docker container spec for building the master branch of nimbus.
|
|
|
|
FROM debian:buster-slim AS build
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --fix-missing build-essential make git libpcre3-dev librocksdb-dev \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
|
|
ENV NPROC=2
|
|
|
|
RUN git clone --depth 1 --branch non_blocking_startup https://github.com/status-im/nimbus-eth1.git \
|
|
&& cd nimbus-eth1 \
|
|
&& git checkout non_blocking_startup \
|
|
&& make -j${NPROC} NIMFLAGS="--parallelBuild:${NPROC}" V=1 update
|
|
|
|
RUN cd nimbus-eth1 && \
|
|
make -j${NPROC} NIMFLAGS="--parallelBuild:${NPROC}" nimbus && \
|
|
mv build/nimbus_execution_client /usr/bin/
|
|
|
|
# --------------------------------- #
|
|
# Starting new image to reduce size #
|
|
# --------------------------------- #
|
|
FROM debian:buster-slim AS deploy
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y librocksdb-dev bash curl jq\
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
|
|
COPY --from=build /usr/bin/nimbus_execution_client /usr/bin/nimbus_execution_client
|
|
RUN usr/bin/nimbus_execution_client --version > /version.txt
|
|
|
|
# Add genesis mapper script.
|
|
ADD genesis.json /genesis.json
|
|
ADD mapper.jq /mapper.jq
|
|
|
|
# Add the startup script.
|
|
ADD nimbus.sh /nimbus.sh
|
|
RUN chmod +x /nimbus.sh
|
|
|
|
# Add the enode URL retriever script.
|
|
ADD enode.sh /hive-bin/enode.sh
|
|
RUN chmod +x /hive-bin/enode.sh
|
|
|
|
# Export the usual networking ports to allow outside access to the node
|
|
EXPOSE 8545 8546 8547 8551 30303 30303/udp
|
|
|
|
ENTRYPOINT ["/nimbus.sh"]
|