generated from guardrails-ai/validator-template
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Hello,
I've been trying to spin up a Docker container using detect_jailbreak guardrail. There's a HUGE difference between images built for arm64 and amd64:
❯ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
guardrails-server dev-amd64 735394102ebd 4 seconds ago 9.23GB
guardrails-server dev a4abe7cd7a30 6 seconds ago 1.52GB
I use Macbook M1 Pro to build the image, which is using the ARM architecture.
Here's the Dockerfile for both architecture.
- arm64
FROM --platform=linux/public.ecr.aws/docker/library/python:3.12-slim
# Accept a build arg for the Guardrails token
# We'll add this to the config using the configure command below
ARG GUARDRAILS_TOKEN
# Create app directory
WORKDIR /app
# print the version just to verify
RUN python3 --version
# start the virtual environment
RUN python3 -m venv /opt/venv
# Enable venv
ENV PATH="/opt/venv/bin:$PATH"
# Install some utilities; you may not need all of these
RUN apt-get update
RUN apt-get install -y git
# Copy the requirements file
COPY requirements*.txt .
# Install app dependencies
# If you use Poetry this step might be different
RUN pip install -r requirements-lock.txt
# Set the directory for nltk data
ENV NLTK_DATA=/opt/nltk_data
# Download punkt data
RUN python -m nltk.downloader -d /opt/nltk_data punkt
# Run the Guardrails configure command to create a .guardrailsrc file
RUN guardrails configure --enable-metrics --enable-remote-inferencing --token $GUARDRAILS_TOKEN
RUN guardrails hub install hub://guardrails/detect_jailbreak
# Copy the rest over
# We use a .dockerignore to keep unwanted files exluded
COPY . .
EXPOSE 8000
# This is our start command; yours might be different.
# The guardrails-api is a standard Flask application.
# You can use whatever production server you want that support Flask.
# Here we use gunicorn
CMD gunicorn --bind 0.0.0.0:8000 --timeout=90 --workers=4 'guardrails_api.app:create_app(None, "config.py")'
- amd64
FROM --platform=linux/amd64 public.ecr.aws/docker/library/python:3.12-slim
# Accept a build arg for the Guardrails token
# We'll add this to the config using the configure command below
ARG GUARDRAILS_TOKEN
# Create app directory
WORKDIR /app
# print the version just to verify
RUN python3 --version
# start the virtual environment
RUN python3 -m venv /opt/venv
# Enable venv
ENV PATH="/opt/venv/bin:$PATH"
# Install some utilities; you may not need all of these
RUN apt-get update
RUN apt-get install -y git
# Copy the requirements file
COPY requirements*.txt .
# Install app dependencies
# If you use Poetry this step might be different
RUN pip install -r requirements-lock.txt
# Set the directory for nltk data
ENV NLTK_DATA=/opt/nltk_data
# Download punkt data
RUN python -m nltk.downloader -d /opt/nltk_data punkt
# Run the Guardrails configure command to create a .guardrailsrc file
RUN guardrails configure --enable-metrics --enable-remote-inferencing --token $GUARDRAILS_TOKEN
RUN guardrails hub install hub://guardrails/detect_jailbreak
# Copy the rest over
# We use a .dockerignore to keep unwanted files exluded
COPY . .
EXPOSE 8000
# This is our start command; yours might be different.
# The guardrails-api is a standard Flask application.
# You can use whatever production server you want that support Flask.
# Here we use gunicorn
CMD gunicorn --bind 0.0.0.0:8000 --timeout=90 --workers=4 'guardrails_api.app:create_app(None, "config.py")'
Any ideas why?
Metadata
Metadata
Assignees
Labels
No labels