From 7fa310d3cf19b32676e283d87b20b24ad612cf94 Mon Sep 17 00:00:00 2001 From: Xevion Date: Sat, 21 Dec 2024 21:06:21 -0600 Subject: [PATCH] dockerfile multistage demo+server --- Dockerfile | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d83859e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +# Build the demo application +FROM rust:latest AS builder-demo + +WORKDIR /build/demo + +COPY ./demo ./ +RUN --mount=type=cache,target=/usr/local/cargo/registry \ + --mount=type=cache,target=/build/demo/target \ + cargo build --release + +# Build the server application +FROM rust:alpine AS builder-server + +RUN apk update && apk add musl-dev +WORKDIR /build/server + +COPY ./src ./src +COPY ./Cargo.toml ./Cargo.lock ./ +# --mount=type=cache,id=s/-,target= +RUN --mount=type=cache,id=s/dynamic-preauth,target=/app/target/ \ + --mount=type=cache,id=s/dynamic-preauth,target=/usr/local/cargo/git/db \ + --mount=type=cache,id=s/dynamic-preauth,target=/usr/local/cargo/registry/ \ + cargo build --release + +# Run the server application +FROM alpine:latest + +WORKDIR /app + +EXPOSE $PORT +COPY --from=builder-demo /build/demo/target/release/demo ./demo +COPY --from=builder-server /build/server/target/release/dynamic-preauth ./dynamic-preauth + +CMD ["/app/dynamic-preauth"] \ No newline at end of file