diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..39f4a48 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +FROM postgres as builder + +ENV POSTGRES_USER "datatrash" +ENV POSTGRES_PASSWORD "secure" + +RUN apt-get update +RUN apt-get install --yes curl build-essential +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup-install.sh +RUN sh rustup-install.sh -y +ENV PATH="/root/.cargo/bin:${PATH}" +RUN rustup target add x86_64-unknown-linux-musl + +ENV USER rust +WORKDIR / +RUN cargo new --bin datatrash +WORKDIR /datatrash +COPY Cargo.lock Cargo.lock +COPY Cargo.toml Cargo.toml +RUN cargo build --release --target=x86_64-unknown-linux-musl --features vendored +RUN rm src/*.rs + +COPY src src +ENV DATABASE_URL "postgresql://datatrash:secure@localhost" +RUN rm target/release/deps/datatrash* +RUN cargo build --release --target=x86_64-unknown-linux-musl --features vendored +RUN strip target/release/horrible + +FROM SCRATCH +COPY --from=builder /datatrash/target/release/datatrash /datatrash +ENTRYPOINT ["/datatrash"]