mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-27 06:13:07 +00:00
Some checks failed
CodSpeed Benchmarks / benchmarks (push) Has been cancelled
Deploy main to gateway-dev / dispatch (push) Has been cancelled
Publish lint base counts / publish (basedpyright, scripts/type_check_gate.py) (push) Has been cancelled
Publish lint base counts / publish (openapi-docs, scripts/openapi_docs_gate.py) (push) Has been cancelled
Publish lint base counts / publish (ruff-strict, scripts/ruff_strict_gate.py) (push) Has been cancelled
Publish lint base counts / publish (test-quality, scripts/test_quality_gate.py) (push) Has been cancelled
Publish lint base counts / publish (type-discipline, scripts/type_discipline_gate.py) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
LiteLLM Rust / rust-wheel (push) Has been cancelled
LiteLLM Rust / rust-lint (push) Has been cancelled
unit / rust-bridge (push) Has been cancelled
unit / assert-shard-coverage (push) Has been cancelled
unit / ui-unit (push) Has been cancelled
unit / docs (push) Has been cancelled
unit / helm (push) Has been cancelled
unit / OpenAI 2.20.0 compatibility (push) Has been cancelled
LiteLLM Rust / rust-test (push) Has been cancelled
unit / llms-anthropic (push) Has been cancelled
unit / llms-bedrock (push) Has been cancelled
unit / llms-openai-meta (push) Has been cancelled
unit / llms-providers (push) Has been cancelled
unit / mcp-elicitation (push) Has been cancelled
unit / proxy-auth (push) Has been cancelled
unit / proxy-endpoints (push) Has been cancelled
unit / proxy-extras (push) Has been cancelled
unit / proxy-feature-endpoints (push) Has been cancelled
unit / proxy-hooks-client (push) Has been cancelled
unit / proxy-infra (push) Has been cancelled
unit / proxy-infra-root (push) Has been cancelled
unit / responses-caching-types (push) Has been cancelled
unit / router (push) Has been cancelled
unit / OpenAI 3.0.0 compatibility (push) Has been cancelled
unit / OpenAI 3.25.0 compatibility (push) Has been cancelled
GitHub Actions Security Analysis / zizmor (push) Has been cancelled
unit / enterprise-package (push) Has been cancelled
unit / integrations (push) Has been cancelled
unit / llms-vertex-ai (push) Has been cancelled
unit / mcp-server (push) Has been cancelled
unit / rust-bridge-harness (push) Has been cancelled
unit / auth-checks (push) Has been cancelled
unit / budgets (push) Has been cancelled
unit / custom-logging (push) Has been cancelled
unit / db-and-spend (push) Has been cancelled
unit / endpoints-and-responses (push) Has been cancelled
unit / enterprise-routing (push) Has been cancelled
unit / guardrails-hooks (push) Has been cancelled
unit / jwt-and-keys (push) Has been cancelled
unit / key-generation (push) Has been cancelled
unit / logging-misc (push) Has been cancelled
unit / mcp-oauth (push) Has been cancelled
unit / proxy-runtime (push) Has been cancelled
unit / proxy-server-core (push) Has been cancelled
unit / root (push) Has been cancelled
unit / proxy-utils (push) Has been cancelled
unit / core-utils (push) Has been cancelled
unit / redis-py 5.3.1 compatibility (push) Has been cancelled
unit / redis-py 6.4.0 compatibility (push) Has been cancelled
unit / redis-py 7.4.1 compatibility (push) Has been cancelled
unit / redis-py 8.0.1 compatibility (push) Has been cancelled
unit / unit passed (push) Has been cancelled
unit / enterprise-managed-files (push) Has been cancelled
unit / enterprise-repositories-secrets (push) Has been cancelled
unit / proxy-server (push) Has been cancelled
unit / lens-python-310 (push) Has been cancelled
unit / caching-local (push) Has been cancelled
unit / endpoints (push) Has been cancelled
unit / coverage (push) Has been cancelled
* build(docker): move to newer wolfi-base and nginx base images Bump the pinned wolfi-base digest in every Wolfi Dockerfile to 360896ef, which ships brotli 1.2.1-r1 and ca-certificates-bundle 20260909-r3. The previous digest already carried libbrotli 1.2.0-r6 as an OpenSSL dependency, and `apk add --no-cache` never upgrades a package the base already has Move the UI image to nginx 1.31.8-alpine3.24, whose CA bundle is the 20261020 Mozilla set, and upgrade brotli-libs in its runtime stage since no nginx digest ships 1.2.1 yet * build(docker): copy only runtime files into the gateway, backend and migrations images The component runtime stages copied the builder's whole /app, which is the entire repository plus build output: six lockfiles, helm, terraform, docs, .env.example and the Rust build tree. Measured at runtime with an audit hook on a booted container, the gateway reads only gateway/, litellm/ and enterprise/ from /app, the backend only backend/, litellm/ and enterprise/, and the migrations job only litellm/ and run.py. The pyproject.toml read is prisma-python's optional [tool.prisma] lookup, which ours does not define Copy just those, plus .venv, the entrypoint script and schema.prisma for the gateway and backend. PYTHONPATH=/app and the in-Dockerfile asserts are unchanged
48 lines
1.5 KiB
Docker
48 lines
1.5 KiB
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
# UI container — Next.js static export served by nginx.
|
|
|
|
ARG UI_BUILD_IMAGE=node:24.19-alpine3.24@sha256:d32cdf619f63fe0471182d08996dd516c6275bb5fd31ae06e55a570bd9e1ad43
|
|
ARG NGINX_VERSION=1.31.8-alpine3.24@sha256:1ef7ca94d7879df82421428ce13bd1eaa412404953859cf7a5b6512c25e67a60
|
|
|
|
# ---------- builder ----------
|
|
FROM ${UI_BUILD_IMAGE} AS builder
|
|
|
|
ENV NEXT_TELEMETRY_DISABLED=1 \
|
|
npm_config_fund=false \
|
|
npm_config_audit=false
|
|
|
|
WORKDIR /app
|
|
|
|
# Layer the lockfile-only install above the source copy so source-only
|
|
# edits don't bust the install cache.
|
|
COPY ui/litellm-dashboard/package.json ui/litellm-dashboard/package-lock.json ./
|
|
COPY ui/litellm-dashboard/vendor/ ./vendor/
|
|
RUN --mount=type=cache,target=/root/.npm \
|
|
npm ci --prefer-offline
|
|
|
|
COPY ui/litellm-dashboard/ ./
|
|
RUN npm run build
|
|
|
|
# ---------- runtime ----------
|
|
FROM nginx:${NGINX_VERSION} AS runtime
|
|
|
|
RUN apk upgrade --no-cache brotli-libs
|
|
|
|
# Drop the upstream default :80 server; we own the config.
|
|
RUN rm -f /etc/nginx/conf.d/default.conf
|
|
|
|
# Static export → web root.
|
|
COPY --from=builder /app/out /usr/share/nginx/html
|
|
|
|
# Runtime backend discovery config.
|
|
COPY ui/docker-entrypoint.d/40-litellm-runtime-config.sh /docker-entrypoint.d/
|
|
|
|
# Routing rules — see ui/nginx.conf for the full description.
|
|
COPY ui/nginx.conf /etc/nginx/nginx.conf
|
|
|
|
EXPOSE 3000/tcp
|
|
|
|
# nginx as PID 1 in foreground; respects SIGTERM out of the box, so
|
|
# no tini/dumb-init wrapper needed.
|
|
CMD ["nginx", "-g", "daemon off;"]
|