casper-devnet 0.5.1

Launcher for local Casper Network development networks.
Documentation
FROM ubuntu:22.04 AS builder
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    ca-certificates \
    curl \
    git \
    libssl-dev \
    pkg-config \
  && rm -rf /var/lib/apt/lists/*

ENV RUSTUP_HOME=/usr/local/rustup \
    CARGO_HOME=/usr/local/cargo \
    PATH=/usr/local/cargo/bin:$PATH

RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-toolchain stable

WORKDIR /app
COPY Cargo.toml Cargo.lock build.rs ./
COPY xtask ./xtask
COPY src ./src

RUN cargo build --release --locked

ENV XDG_DATA_HOME=/opt/casper-devnet-data
RUN mkdir -p "$XDG_DATA_HOME" \
    && /app/target/release/casper-devnet assets pull

FROM ubuntu:22.04
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates \
    libgcc-s1 \
    libssl3 \
    libstdc++6 \
  && rm -rf /var/lib/apt/lists/*

ENV XDG_DATA_HOME=/opt/casper-devnet-data

COPY --from=builder /app/target/release/casper-devnet /usr/local/bin/casper-devnet
COPY --from=builder /opt/casper-devnet-data /opt/casper-devnet-data

VOLUME ["/opt/casper-devnet-data"]

EXPOSE 11101 14101 18101 22101 28101

CMD ["casper-devnet", "start"]