FROM rust:1.47-slim-buster as build

WORKDIR /usr/src

RUN apt-get update \
&& apt-get install -y git pkg-config libssl-dev

# Make sure the dependencies are all cached so we won't hammer crates.io

ADD old-git.tar.gz .
RUN git checkout 151f236a0b8de510b1896deeaa9c571f845040af \
&& git reset --hard \
&& cargo check

RUN cargo test --release \
&& cargo build --release --bin ptth_relay

COPY .git .git

ARG gitcommithash=HEAD

RUN git checkout "$gitcommithash" \
&& git reset --hard \
&& echo "pub const GIT_VERSION: Option <&str> = Some (\"$(git rev-parse HEAD)\");" > src/git_version.rs \
&& cargo test --release \
&& cargo build --release --bin ptth_relay

FROM debian:buster-slim as deploy

RUN apt-get update \
&& apt-get install -y libssl1.1 ca-certificates \
&& apt-get upgrade -y

COPY --from=build /usr/src/target/release/ptth_relay /root
COPY --from=build /usr/src/src/git_version.rs /root/git_version.rs
COPY --from=build /usr/src/ptth_handlebars /root/ptth_handlebars

WORKDIR /root

CMD ["./ptth_relay"]