From 743a6abe345a84e36d1e587120f80733c077934a Mon Sep 17 00:00:00 2001 From: Ishaan Jaff Date: Mon, 1 Jan 2024 22:01:44 +0530 Subject: [PATCH] Create Dockerfile_alpine --- Dockerfile_alpine | 52 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Dockerfile_alpine diff --git a/Dockerfile_alpine b/Dockerfile_alpine new file mode 100644 index 000000000..050d4bb32 --- /dev/null +++ b/Dockerfile_alpine @@ -0,0 +1,52 @@ +# Base image for building +ARG LITELLM_BUILD_IMAGE=python:3.9-alpine + +# Runtime image +ARG LITELLM_RUNTIME_IMAGE=python:3.9-alpine + +# Builder stage +FROM $LITELLM_BUILD_IMAGE as builder + +# Set the working directory to /app +WORKDIR /app + +# Install build dependencies +RUN apk update && \ + apk add --no-cache gcc python3-dev musl-dev && \ + rm -rf /var/cache/apk/* + +RUN pip install --upgrade pip && \ + pip install build + +# Copy the current directory contents into the container at /app +COPY . . + +# Build the package +RUN rm -rf dist/* && python -m build + +# There should be only one wheel file now, assume the build only creates one +RUN ls -1 dist/*.whl | head -1 + +# Install the package +RUN pip install dist/*.whl + +# install dependencies as wheels +RUN pip wheel --no-cache-dir --wheel-dir=/wheels/ -r requirements.txt + +# Runtime stage +FROM $LITELLM_RUNTIME_IMAGE as runtime + +WORKDIR /app + +# Copy the built wheel from the builder stage to the runtime stage; assumes only one wheel file is present +COPY --from=builder /app/dist/*.whl . +COPY --from=builder /wheels/ /wheels/ + +# Install the built wheel using pip; again using a wildcard if it's the only file +RUN pip install *.whl /wheels/* --no-index --find-links=/wheels/ && rm -f *.whl && rm -rf /wheels + +EXPOSE 4000/tcp + +# Set your entrypoint and command +ENTRYPOINT ["litellm"] +CMD ["--port", "4000"]