From c04afa032f38c74b92c7f09e25e1fe61b5a5993c Mon Sep 17 00:00:00 2001 From: akildemir Date: Mon, 12 Feb 2024 16:05:17 +0300 Subject: [PATCH] set up the fast-epoch docker file --- .gitignore | 1 + orchestration/serai/Dockerfile.fast-epoch | 71 ----------------------- orchestration/src/serai.rs | 8 +++ 3 files changed, 9 insertions(+), 71 deletions(-) delete mode 100644 orchestration/serai/Dockerfile.fast-epoch diff --git a/.gitignore b/.gitignore index b8df85f9..ac94d875 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ target Dockerfile +Dockerfile.fast-epoch !orchestration/runtime/Dockerfile .test-logs diff --git a/orchestration/serai/Dockerfile.fast-epoch b/orchestration/serai/Dockerfile.fast-epoch deleted file mode 100644 index 783a4918..00000000 --- a/orchestration/serai/Dockerfile.fast-epoch +++ /dev/null @@ -1,71 +0,0 @@ -FROM debian:bookworm-slim as mimalloc - -RUN apt update && apt upgrade -y && apt install -y gcc g++ make cmake git -RUN git clone https://github.com/microsoft/mimalloc && \ - cd mimalloc && \ - git checkout 43ce4bd7fd34bcc730c1c7471c99995597415488 && \ - mkdir -p out/secure && \ - cd out/secure && \ - cmake -DMI_SECURE=ON ../.. && \ - make && \ - cp ./libmimalloc-secure.so ../../../libmimalloc.so -FROM rust:1.75-slim-bookworm as builder - -COPY --from=mimalloc libmimalloc.so /usr/lib -RUN echo "/usr/lib/libmimalloc.so" >> /etc/ld.so.preload - -RUN apt update && apt upgrade -y && apt autoremove -y && apt clean - -# Add dev dependencies -RUN apt install -y pkg-config clang - -# Dependencies for the Serai node -RUN apt install -y make protobuf-compiler - -# Add the wasm toolchain -RUN rustup target add wasm32-unknown-unknown - -# Add files for build -ADD common /serai/common -ADD crypto /serai/crypto -ADD coins /serai/coins -ADD message-queue /serai/message-queue -ADD processor /serai/processor -ADD coordinator /serai/coordinator -ADD substrate /serai/substrate -ADD mini /serai/mini -ADD tests /serai/tests -ADD patches /serai/patches -ADD Cargo.toml /serai -ADD Cargo.lock /serai -ADD AGPL-3.0 /serai - -WORKDIR /serai - -# Mount the caches and build -RUN --mount=type=cache,target=/root/.cargo \ - --mount=type=cache,target=/usr/local/cargo/registry \ - --mount=type=cache,target=/usr/local/cargo/git \ - --mount=type=cache,target=/serai/target \ - mkdir /serai/bin && \ - cargo build --release --features fast-epoch -p serai-node && \ - mv /serai/target/release/serai-node /serai/bin -FROM debian:bookworm-slim as image - -COPY --from=mimalloc libmimalloc.so /usr/lib -RUN echo "/usr/lib/libmimalloc.so" >> /etc/ld.so.preload - -RUN apt update && apt upgrade -y && apt autoremove -y && apt clean -# Switch to a non-root user -RUN useradd --system --home /home/serai --shell /sbin/nologin serai -USER serai - -WORKDIR /home/serai - -# Copy the Serai binary and relevant license -COPY --from=builder --chown=serai /serai/bin/serai-node /bin/ -COPY --from=builder --chown=serai /serai/AGPL-3.0 . - -# Run node -EXPOSE 30333 9615 9933 9944 -CMD ["serai-node"] diff --git a/orchestration/src/serai.rs b/orchestration/src/serai.rs index ac677dd5..a3382acb 100644 --- a/orchestration/src/serai.rs +++ b/orchestration/src/serai.rs @@ -5,6 +5,8 @@ use crate::{Network, Os, mimalloc, os, build_serai_service, write_dockerfile}; pub fn serai(orchestration_path: &Path, network: Network) { // Always builds in release for performance reasons let setup = mimalloc(Os::Debian).to_string() + &build_serai_service(true, "", "serai-node"); + let setup_fast_epoch = + mimalloc(Os::Debian).to_string() + &build_serai_service(true, "fast-epoch", "serai-node"); // TODO: Review the ports exposed here let run_serai = format!( @@ -24,10 +26,16 @@ CMD ["/run.sh"] let run = os(Os::Debian, "", "serai") + &run_serai; let res = setup + &run; + let res_fast_epoch = setup_fast_epoch + &run; let mut serai_path = orchestration_path.to_path_buf(); serai_path.push("serai"); + + let mut serai_fast_epoch_path = serai_path.clone(); + serai_path.push("Dockerfile"); + serai_fast_epoch_path.push("Dockerfile.fast-epoch"); write_dockerfile(serai_path, &res); + write_dockerfile(serai_fast_epoch_path, &res_fast_epoch); }