litellm/litellm-rust/crates/gateway/Dockerfile
devin-ai-integration[bot] 438bffc26e
build(rust): package the gateway container (#43471)
* build(rust): package the gateway container

* ci: exempt the gateway Dockerfile from the CI coverage gate

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>

---------

Co-authored-by: Yujong Lee <yujong@berri.ai>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-27 16:49:39 -07:00

47 lines
1.4 KiB
Docker

FROM rust:1.98.0-bookworm@sha256:82150a52ec202c1b14d7817e14516c392bb7f5cfebd88f1ed531cb37ebd39922 AS chef
RUN apt-get update \
&& apt-get install --yes --no-install-recommends cmake \
&& rm -rf /var/lib/apt/lists/*
RUN cargo install cargo-chef --version 0.1.74 --locked
WORKDIR /app
FROM chef AS planner
COPY Cargo.toml Cargo.lock ./
COPY crates ./crates
RUN cargo chef prepare --recipe-path recipe.json
FROM chef AS builder
COPY --from=planner /app/recipe.json ./recipe.json
RUN --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked \
cargo chef cook --release --locked --package litellm-gateway --bin litellm-gateway --recipe-path recipe.json
COPY Cargo.toml Cargo.lock ./
COPY crates ./crates
RUN --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked \
cargo build --release --locked --package litellm-gateway --bin litellm-gateway
FROM debian:bookworm-slim@sha256:3783cc01769c7b2b1b83a5c5ad96c815348e28ed7da68e2e3687004faa906251 AS runtime
RUN apt-get update \
&& apt-get install --yes --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/* \
&& groupadd --gid 10001 litellm \
&& useradd --uid 10001 --gid litellm --no-create-home --shell /usr/sbin/nologin litellm
WORKDIR /app
COPY --from=builder /app/target/release/litellm-gateway /usr/local/bin/litellm-gateway
USER 10001:10001
EXPOSE 4000
ENTRYPOINT ["/usr/local/bin/litellm-gateway"]