50 lines
1.5 KiB
Docker
50 lines
1.5 KiB
Docker
|
|
# New LiteLLM version has a dependency on madoka which requires g++ to build the wheel
|
||
|
|
FROM python:3.13
|
||
|
|
|
||
|
|
ARG GUARDRAILS_TOKEN
|
||
|
|
ARG GUARDRAILS_TEMPLATE="guard-template.json"
|
||
|
|
|
||
|
|
# Set environment variables to avoid writing .pyc files and to unbuffer Python output
|
||
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
||
|
|
ENV PYTHONUNBUFFERED=1
|
||
|
|
ENV LOGLEVEL="DEBUG"
|
||
|
|
ENV GUARDRAILS_LOG_LEVEL="DEBUG"
|
||
|
|
ENV APP_ENVIRONMENT="production"
|
||
|
|
ENV GUARDRAILS_TEMPLATE=$GUARDRAILS_TEMPLATE
|
||
|
|
|
||
|
|
WORKDIR /app
|
||
|
|
|
||
|
|
# Install Git and necessary dependencies
|
||
|
|
RUN apt-get update && \
|
||
|
|
apt-get install -y make git curl gcc jq pipx && \
|
||
|
|
apt-get clean && \
|
||
|
|
rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
ENV PATH="/root/.local/bin:$PATH"
|
||
|
|
|
||
|
|
# Copy the entrypoint script
|
||
|
|
COPY /server_ci/fastapi-entry.sh /app/fastapi-entry.sh
|
||
|
|
COPY ../ /app/guardrails
|
||
|
|
|
||
|
|
# Install guardrails, the guardrails API, and gunicorn
|
||
|
|
# openai optional. only used for integration testing
|
||
|
|
RUN pip install "uvicorn[standard]" --no-cache-dir
|
||
|
|
|
||
|
|
RUN pip install "/app/guardrails[api]"
|
||
|
|
|
||
|
|
RUN guardrails configure --enable-metrics --enable-remote-inferencing --token $GUARDRAILS_TOKEN
|
||
|
|
|
||
|
|
# bring in base template
|
||
|
|
COPY /server_ci/$GUARDRAILS_TEMPLATE /app/$GUARDRAILS_TEMPLATE
|
||
|
|
|
||
|
|
# Install Hub Deps and create config.py
|
||
|
|
RUN guardrails create --template /app/$GUARDRAILS_TEMPLATE
|
||
|
|
|
||
|
|
|
||
|
|
# RUN cp -r /usr/local/lib/python3.11/site-packages/guardrails/hub/* /app/guardrails/guardrails/hub
|
||
|
|
|
||
|
|
# Expose port 8000 for the application
|
||
|
|
EXPOSE 8000
|
||
|
|
|
||
|
|
# Command to start the Gunicorn server with specified settings
|
||
|
|
CMD ["/bin/bash", "/app/fastapi-entry.sh"]
|