# Builder image FROM rust:buster as builder RUN apt-get update && \ apt-get install -y --no-install-recommends \ make cmake g++ gcc llvm libclang-dev clang RUN mkdir /zebra WORKDIR /zebra ENV RUST_BACKTRACE 1 ENV CARGO_HOME /zebra/.cargo/ RUN rustc -V; cargo -V; rustup -V COPY . . RUN cargo test --all --release; cargo build --release # Runner image FROM debian:buster-slim AS zebrad-release COPY --from=builder /zebra/target/release/zebrad / ARG CHECKPOINT_SYNC=true ARG NETWORK=Mainnet RUN printf "[consensus]\n" >> /zebrad.toml RUN printf "checkpoint_sync = ${CHECKPOINT_SYNC}\n" >> /zebrad.toml RUN printf "[network]\n" >> /zebrad.toml RUN printf "network = '${NETWORK}'\n" >> /zebrad.toml RUN printf "[state]\n" >> /zebrad.toml RUN printf "cache_dir = '/zebrad-cache'\n" >> /zebrad.toml RUN printf "[tracing]\n" >> /zebrad.toml RUN printf "endpoint_addr = '0.0.0.0:3000'\n" >> /zebrad.toml EXPOSE 3000 8233 18233 ENV RUST_BACKTRACE full CMD [ "/zebrad", "-c", "/zebrad.toml", "start" ]