42 lines
990 B
Docker
42 lines
990 B
Docker
# 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"] |