diff --git a/Dockerfile b/Dockerfile index a908c3e20..487df1246 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,18 +57,23 @@ RUN --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=$SCCACHE_DIR,sharing=locked \ cargo build --release --features="$FEATURES" +FROM ethpandaops/reth:main as reth # -# Runtime container -# -FROM gcr.io/distroless/cc-debian12 +## Runtime container with both rbuilder and reth + entrypoint script +## +FROM ubuntu:latest AS runtime WORKDIR /app -# RUN apk add libssl3 ca-certificates -# RUN apt-get update \ -# && apt-get install -y libssl3 ca-certificates \ -# && rm -rf /var/lib/apt/lists/* +RUN apt-get update \ + && apt-get install -y curl COPY --from=builder /app/target/release/rbuilder /app/rbuilder +COPY --from=reth /usr/local/bin/reth /app/reth +COPY ./entrypoint.sh /app/entrypoint.sh + +# Make the entrypoint script executable +RUN chmod +x /app/entrypoint.sh -ENTRYPOINT ["/app/rbuilder"] +EXPOSE 30303 30303/udp 9001 8545 8546 8645 +ENTRYPOINT ["/app/entrypoint.sh"] diff --git a/crates/rbuilder/src/live_builder/payload_events/mod.rs b/crates/rbuilder/src/live_builder/payload_events/mod.rs index 2369be454..41e1e2114 100644 --- a/crates/rbuilder/src/live_builder/payload_events/mod.rs +++ b/crates/rbuilder/src/live_builder/payload_events/mod.rs @@ -135,6 +135,7 @@ impl MevBoostSlotDataGenerator { if let Some(res) = relays.slot_data(event.data.proposal_slot).await { res } else { + debug!("No slot data for {:?}", event); continue; }; @@ -173,6 +174,7 @@ impl MevBoostSlotDataGenerator { break; } } + info!("MevBoostSlotDataGenerator: finishing"); // cancelling here because its a critical job self.global_cancellation.cancel(); diff --git a/crates/rbuilder/src/live_builder/payload_events/relay_epoch_cache.rs b/crates/rbuilder/src/live_builder/payload_events/relay_epoch_cache.rs index 26e7a56f1..94b2efad0 100644 --- a/crates/rbuilder/src/live_builder/payload_events/relay_epoch_cache.rs +++ b/crates/rbuilder/src/live_builder/payload_events/relay_epoch_cache.rs @@ -7,7 +7,7 @@ use alloy_primitives::Address; use futures::stream::FuturesOrdered; use primitive_types::H384; use tokio_stream::StreamExt; -use tracing::{info_span, trace, warn}; +use tracing::{debug, info_span, trace, warn}; /// Info about a slot obtained from a relay. #[derive(Debug, Clone, Hash, PartialEq, Eq)] @@ -110,7 +110,7 @@ impl RelaysForSlotData { res } Ok(None) => { - trace!("Relay does not have slot data"); + debug!("Relay does not have slot data"); continue; } Err(err) => { diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 000000000..5df6e0583 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,19 @@ +#!/bin/bash +set -e + +# Run reth in the background if RETH_CMD is set +if [ -n "$RETH_CMD" ]; then + echo "Running /app/reth with arguments: $RETH_CMD in the background" + /app/$RETH_CMD & +fi + +sleep 5 + +# Run rbuilder as the main process +if [ -n "$RBUILDER_CONFIG" ]; then + echo "Running /app/rbuilder with arguments: $RBUILDER_CONFIG" + exec /app/rbuilder run +else + echo "RBUILDER_CONFIG is not set. Exiting." + exit 1 +fi