nxtgauge-backend-rust/apps/users/Dockerfile

41 lines
818 B
Docker

# Build stage
FROM rust:1.85-slim AS builder
WORKDIR /usr/src/app
# Install build dependencies
RUN apt-get update && apt-get install -y \
pkg-config \
libsqlite3-dev \
&& rm -rf /var/lib/apt/lists/*
# Copy manifests
COPY Cargo.toml ./
COPY crates ./crates
COPY apps ./apps
# Build the application (release mode for smaller binary)
RUN cargo build --release --bin users
# Runtime stage
FROM debian:bookworm-slim AS runtime
# Install runtime dependencies
RUN apt-get update && apt-get install -y \
ca-certificates \
libsqlite3-0 \
&& rm -rf /var/lib/apt/lists/*
# Create app user
RUN useradd -m -u 1000 appuser
WORKDIR /app
# Copy binary from builder
COPY --from=builder /usr/src/app/target/release/users ./users
# Switch to non-root user
USER appuser
# Run the binary
CMD ["./users"]