Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions geth/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,38 @@ RUN . /tmp/versions.env && git clone $OP_GETH_REPO --branch $OP_GETH_TAG --singl

RUN go run build/ci.go install -static ./cmd/geth


ARG RUST_VERSION=1.93
FROM public.ecr.aws/docker/library/rust:${RUST_VERSION}-trixie AS rust-builder-base
WORKDIR /app
ARG MOLD_VERSION=2.40.4
ARG MOLD_SHA256_AARCH64=c799b9ccae8728793da2186718fbe53b76400a9da396184fac0c64aa3298ec37
ARG MOLD_SHA256_ARM=d82792748a81202423ddd2496fc8719404fe694493abdef691cc080392ee44bf
ARG MOLD_SHA256_X86_64=4c999e19ffa31afa5aa429c679b665d5e2ca5a6b6832ad4b79668e8dcf3d8ec1
RUN apt-get update && \
apt-get install -y --no-install-recommends \
git libclang-dev pkg-config curl build-essential cmake && \
rm -rf /var/lib/apt/lists/*
RUN set -eux; \
case "$(uname -m)" in \
x86_64) MOLD_ARCH=x86_64; MOLD_SHA256="${MOLD_SHA256_X86_64}" ;; \
aarch64|arm64) MOLD_ARCH=aarch64; MOLD_SHA256="${MOLD_SHA256_AARCH64}" ;; \
armv7l|armv6l) MOLD_ARCH=arm; MOLD_SHA256="${MOLD_SHA256_ARM}" ;; \
*) echo "unsupported architecture: $(uname -m)" >&2; exit 1 ;; \
esac; \
curl -fsSL "https://github.com/rui314/mold/releases/download/v${MOLD_VERSION}/mold-${MOLD_VERSION}-${MOLD_ARCH}-linux.tar.gz" -o /tmp/mold.tar.gz; \
echo "${MOLD_SHA256} /tmp/mold.tar.gz" | sha256sum -c -; \
tar -xzf /tmp/mold.tar.gz -C /tmp; \
cp /tmp/mold-${MOLD_VERSION}-${MOLD_ARCH}-linux/bin/* /usr/local/bin/; \
rm -rf /tmp/mold*

FROM rust-builder-base AS base-consensus-builder
WORKDIR /app
COPY versions.env /tmp/versions.env
RUN . /tmp/versions.env && git clone $BASE_RETH_NODE_REPO . && \
git checkout tags/$BASE_RETH_NODE_TAG && \
bash -c '[ "$(git rev-parse HEAD)" = "$BASE_RETH_NODE_COMMIT" ]' || (echo "Commit hash verification failed" && exit 1)
RUN cargo build --bin base-consensus --profile maxperf
FROM ubuntu:24.04

RUN apt-get update && \
Expand All @@ -36,9 +68,11 @@ WORKDIR /app

COPY --from=op /app/op-node/bin/op-node ./
COPY --from=geth /app/build/bin/geth ./
COPY --from=base-consensus-builder /app/target/maxperf/base-consensus ./
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY geth/geth-entrypoint ./execution-entrypoint
COPY op-node-entrypoint .
COPY base-consensus-entrypoint .
COPY consensus-entrypoint .

CMD ["/usr/bin/supervisord"]
34 changes: 34 additions & 0 deletions nethermind/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,38 @@ RUN . /tmp/versions.env && git clone $OP_NODE_REPO --branch $OP_NODE_TAG --singl
RUN . /tmp/versions.env && cd op-node && \
just VERSION=$OP_NODE_TAG op-node


ARG RUST_VERSION=1.93
FROM public.ecr.aws/docker/library/rust:${RUST_VERSION}-trixie AS rust-builder-base
WORKDIR /app
ARG MOLD_VERSION=2.40.4
ARG MOLD_SHA256_AARCH64=c799b9ccae8728793da2186718fbe53b76400a9da396184fac0c64aa3298ec37
ARG MOLD_SHA256_ARM=d82792748a81202423ddd2496fc8719404fe694493abdef691cc080392ee44bf
ARG MOLD_SHA256_X86_64=4c999e19ffa31afa5aa429c679b665d5e2ca5a6b6832ad4b79668e8dcf3d8ec1
RUN apt-get update && \
apt-get install -y --no-install-recommends \
git libclang-dev pkg-config curl build-essential cmake && \
rm -rf /var/lib/apt/lists/*
RUN set -eux; \
case "$(uname -m)" in \
x86_64) MOLD_ARCH=x86_64; MOLD_SHA256="${MOLD_SHA256_X86_64}" ;; \
aarch64|arm64) MOLD_ARCH=aarch64; MOLD_SHA256="${MOLD_SHA256_AARCH64}" ;; \
armv7l|armv6l) MOLD_ARCH=arm; MOLD_SHA256="${MOLD_SHA256_ARM}" ;; \
*) echo "unsupported architecture: $(uname -m)" >&2; exit 1 ;; \
esac; \
curl -fsSL "https://github.com/rui314/mold/releases/download/v${MOLD_VERSION}/mold-${MOLD_VERSION}-${MOLD_ARCH}-linux.tar.gz" -o /tmp/mold.tar.gz; \
echo "${MOLD_SHA256} /tmp/mold.tar.gz" | sha256sum -c -; \
tar -xzf /tmp/mold.tar.gz -C /tmp; \
cp /tmp/mold-${MOLD_VERSION}-${MOLD_ARCH}-linux/bin/* /usr/local/bin/; \
rm -rf /tmp/mold*

FROM rust-builder-base AS base-consensus-builder
WORKDIR /app
COPY versions.env /tmp/versions.env
RUN . /tmp/versions.env && git clone $BASE_RETH_NODE_REPO . && \
git checkout tags/$BASE_RETH_NODE_TAG && \
bash -c '[ "$(git rev-parse HEAD)" = "$BASE_RETH_NODE_COMMIT" ]' || (echo "Commit hash verification failed" && exit 1)
RUN cargo build --bin base-consensus --profile maxperf
FROM mcr.microsoft.com/dotnet/sdk:10.0-noble AS build

ARG BUILD_CONFIG=release
Expand Down Expand Up @@ -43,9 +75,11 @@ WORKDIR /app

COPY --from=build /publish ./
COPY --from=op /app/op-node/bin/op-node ./
COPY --from=base-consensus-builder /app/target/maxperf/base-consensus ./
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY nethermind/nethermind-entrypoint ./execution-entrypoint
COPY op-node-entrypoint .
COPY base-consensus-entrypoint .
COPY consensus-entrypoint .

CMD ["/usr/bin/supervisord"]