mirror of
https://github.com/eth-act/ere.git
synced 2026-04-03 03:00:17 -04:00
Add ProverResouce::Cluster and add cluster support for ZisK (#284)
This commit is contained in:
114
docker/zisk/Dockerfile.cluster
Normal file
114
docker/zisk/Dockerfile.cluster
Normal file
@@ -0,0 +1,114 @@
|
||||
ARG BASE_IMAGE=ubuntu:24.04
|
||||
ARG BASE_CUDA_IMAGE=nvidia/cuda:12.9.1-devel-ubuntu24.04
|
||||
ARG RUNTIME_IMAGE=ubuntu:24.04
|
||||
ARG RUNTIME_CUDA_IMAGE=nvidia/cuda:12.9.1-runtime-ubuntu24.04
|
||||
|
||||
# Whether to enable CUDA feature or not.
|
||||
ARG CUDA
|
||||
|
||||
FROM $BASE_IMAGE AS base
|
||||
FROM $BASE_CUDA_IMAGE AS base_cuda
|
||||
FROM base${CUDA:+_cuda} AS build_stage
|
||||
|
||||
# Taken from https://0xpolygonhermez.github.io/zisk/getting_started/installation.html
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
xz-utils \
|
||||
jq \
|
||||
curl \
|
||||
build-essential \
|
||||
qemu-system \
|
||||
libomp-dev \
|
||||
libgmp-dev \
|
||||
nlohmann-json3-dev \
|
||||
protobuf-compiler \
|
||||
uuid-dev \
|
||||
libgrpc++-dev \
|
||||
libsecp256k1-dev \
|
||||
libsodium-dev \
|
||||
libpqxx-dev \
|
||||
nasm \
|
||||
libopenmpi-dev \
|
||||
openmpi-bin \
|
||||
openmpi-common \
|
||||
libclang-dev \
|
||||
clang \
|
||||
gcc-riscv64-unknown-elf \
|
||||
libprotobuf-dev \
|
||||
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install rustup
|
||||
ARG RUST_VERSION=1.88.0
|
||||
|
||||
ENV RUSTUP_HOME=/usr/local/rustup \
|
||||
CARGO_HOME=/usr/local/cargo \
|
||||
PATH=/usr/local/cargo/bin:$PATH
|
||||
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain ${RUST_VERSION} --no-modify-path
|
||||
|
||||
# Clone repo
|
||||
WORKDIR /app
|
||||
|
||||
RUN git clone https://github.com/han0110/zisk.git --depth 1 --branch patch/v0.15.0-cluster /app
|
||||
|
||||
# Whether to enable CUDA feature or not.
|
||||
ARG CUDA
|
||||
|
||||
# Default to build for RTX 50 series
|
||||
ARG CUDA_ARCH=sm_120
|
||||
|
||||
# Build binaries
|
||||
RUN cargo build --release ${CUDA:+--features gpu}
|
||||
|
||||
FROM $RUNTIME_IMAGE AS runtime
|
||||
FROM $RUNTIME_CUDA_IMAGE AS runtime_cuda
|
||||
FROM runtime${CUDA:+_cuda} AS runtime_stage
|
||||
|
||||
# Taken from https://0xpolygonhermez.github.io/zisk/getting_started/installation.html
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
xz-utils \
|
||||
jq \
|
||||
curl \
|
||||
build-essential \
|
||||
qemu-system \
|
||||
libomp-dev \
|
||||
libgmp-dev \
|
||||
nlohmann-json3-dev \
|
||||
protobuf-compiler \
|
||||
uuid-dev \
|
||||
libgrpc++-dev \
|
||||
libsecp256k1-dev \
|
||||
libsodium-dev \
|
||||
libpqxx-dev \
|
||||
nasm \
|
||||
libopenmpi-dev \
|
||||
openmpi-bin \
|
||||
openmpi-common \
|
||||
libclang-dev \
|
||||
clang \
|
||||
gcc-riscv64-unknown-elf \
|
||||
libprotobuf-dev \
|
||||
&& apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN curl -sSL https://github.com/fullstorydev/grpcurl/releases/download/v1.9.3/grpcurl_1.9.3_linux_x86_64.tar.gz \
|
||||
| tar -xz -C /usr/local/bin grpcurl
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy script
|
||||
COPY --from=build_stage /app/ziskup/ziskup /app/ziskup/ziskup
|
||||
|
||||
# Copy binaries (to /usr/local/bin instead of ~/.zisk/bin because we want to mount ~/.zisk later)
|
||||
COPY --from=build_stage /app/target/release/cargo-zisk /usr/local/bin/cargo-zisk
|
||||
COPY --from=build_stage /app/target/release/libzisk_witness.so /usr/local/bin/libzisk_witness.so
|
||||
COPY --from=build_stage /app/target/release/zisk-coordinator /usr/local/bin/zisk-coordinator
|
||||
COPY --from=build_stage /app/target/release/zisk-worker /usr/local/bin/zisk-worker
|
||||
|
||||
# Copy proto for health check
|
||||
COPY --from=build_stage /app/distributed/crates/grpc-api/proto/zisk_distributed_api.proto /app/proto/zisk_distributed_api.proto
|
||||
|
||||
# Copy configs
|
||||
COPY --from=build_stage /app/distributed/crates/coordinator/config/ /app/config/coordinator/
|
||||
COPY --from=build_stage /app/distributed/crates/worker/config/ /app/config/worker/
|
||||
|
||||
CMD ["/bin/bash"]
|
||||
Reference in New Issue
Block a user