Files
ere/docker/risc0/Dockerfile.server

41 lines
1.1 KiB
Docker

ARG BASE_ZKVM_IMAGE=ere-base-risc0:latest
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_ZKVM_IMAGE AS build_stage
COPY . /ere
WORKDIR /ere
ARG CUDA
ARG RUSTFLAGS
RUN cargo build --release --package ere-server --bin ere-server --features risc0${CUDA:+,cuda} \
&& mkdir bin && mv target/release/ere-server bin/ere-server \
&& cargo clean && rm -rf $CARGO_HOME/registry/
FROM $RUNTIME_IMAGE AS runtime
FROM $RUNTIME_CUDA_IMAGE AS runtime_cuda
FROM runtime${CUDA:+_cuda} AS runtime_stage
# Copy symlinks of r0vm(-cuda)
COPY --from=build_stage /usr/local/cargo/bin/r0vm* /usr/local/cargo/bin/
# Add symlinks of r0vm(-cuda) to path
ENV PATH=/usr/local/cargo/bin:$PATH
# Copy Risc0 SDK
COPY --from=build_stage /root/.risc0/extensions /root/.risc0/extensions
# Add Docker CLI (only needed for Groth16 proof kind)
COPY --from=docker:cli /usr/local/bin/docker /usr/local/bin/docker
# Copy ere-server
COPY --from=build_stage /ere/bin/ere-server /ere/bin/ere-server
ENTRYPOINT ["/ere/bin/ere-server"]