FROM rustlang/rust:nightly as builder WORKDIR /opt/tarpaulin RUN env USER=root cargo init . COPY Cargo.toml . COPY Cargo.lock . COPY build.rs . RUN mkdir .cargo RUN cargo vendor > .cargo/config COPY src /opt/tarpaulin/src RUN cd /opt/tarpaulin/ && \ cargo install --locked --path . && \ rm -rf /opt/tarpaulin/ && \ rm -rf /usr/local/cargo/registry/ FROM rustlang/rust:nightly-slim RUN apt-get update && \ apt-get install -y curl && \ rm -rf /var/lib/apt/lists/* COPY --from=builder /usr/local/cargo/bin/cargo-tarpaulin /usr/local/cargo/bin/cargo-tarpaulin WORKDIR /volume CMD cargo build && cargo tarpaulin