# Use Rust official image for building the application FROM rust:1.83 AS builder LABEL authors="raven" WORKDIR /usr/src/proto COPY ./proto . WORKDIR /usr/src/utils COPY ./utils . RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive \ apt-get install --no-install-recommends --assume-yes \ protobuf-compiler # Set the working directory WORKDIR /usr/src/auth-service # Copy the project files COPY ./auth-service . # Build the application in release mode RUN cargo build --release # Use a minimal base image to run the application FROM debian:bookworm-slim RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive \ apt-get install --no-install-recommends --assume-yes \ pkg-config \ libssl-dev \ && rm -rf /var/lib/apt/lists/* # Copy the compiled binary COPY --from=builder /usr/src/auth-service/target/release/auth-service /usr/local/bin/auth-service # Expose the service port EXPOSE 50051 # Set the entrypoint for the container CMD ["auth-service"]