FROM rust:1-slim-buster AS base

ENV USER=root

WORKDIR /code
RUN cargo init
COPY Cargo.toml /code/Cargo.toml
RUN cargo fetch

COPY src /code/src

CMD [ "cargo", "test", "--offline" ]

FROM base AS builder

RUN cargo build --release --offline

FROM debian:buster-slim

COPY --from=builder /code/target/release/docker_sample /usr/bin/docker_sample

EXPOSE 5000

ENTRYPOINT [ "/usr/bin/docker_sample" ]