File size: 2,031 Bytes
55b0541 ea0dd40 2806807 ea0dd40 fcd826b 3034296 f6d59b2 54d383e f6d59b2 3034296 4ee3470 8466e45 3034296 8466e45 ea0dd40 8466e45 ea0dd40 4ee3470 d3ff2e2 8466e45 d3ff2e2 8466e45 f6d59b2 2b16125 d3ff2e2 55b0541 4ee3470 8466e45 55b0541 4ee3470 ea0dd40 4ee3470 d3ff2e2 4ee3470 2b16125 7e9dd76 4ee3470 d3ff2e2 f20dd46 4ee3470 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# First stage: build dependencies
FROM public.ecr.aws/docker/library/python:3.11.9-slim-bookworm
# Optional - install Lambda web adapter in case you want to run with with an AWS Lamba function URL
# COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.8.3 /lambda-adapter /opt/extensions/lambda-adapter
# Install wget
RUN apt-get update && \
apt-get install -y wget && \
apt-get install -y curl && \
apt-get clean && rm -rf /var/lib/apt/lists/*
# Create a directory for the model
RUN mkdir /model
WORKDIR /src
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Gradio needs to be installed after due to conflict with spacy in requirements
RUN pip install --no-cache-dir gradio==4.37.2
# Download the BGE embedding model during the build process. Create a directory for the model and download specific files using huggingface_hub
RUN mkdir -p /model/minilm
COPY download_model.py /src/download_model.py
RUN python /src/download_model.py
# Set up a new user named "user" with user ID 1000
RUN useradd -m -u 1000 user
# Change ownership of /home/user directory
RUN chown -R user:user /home/user
EXPOSE 7860
# Make output folder
RUN mkdir -p /home/user/app/output && chown -R user:user /home/user/app/output
RUN mkdir -p /home/user/.cache/huggingface/hub && chown -R user:user /home/user/.cache/huggingface/hub
# Switch to the "user" user
USER user
# Set home to the user's home directory
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH \
PYTHONPATH=$HOME/app \
PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
GRADIO_ALLOW_FLAGGING=never \
GRADIO_NUM_PORTS=1 \
GRADIO_SERVER_NAME=0.0.0.0 \
GRADIO_SERVER_PORT=7860 \
GRADIO_THEME=huggingface \
AWS_STS_REGIONAL_ENDPOINT=regional \
#GRADIO_ROOT_PATH=/data-text-search \
SYSTEM=spaces
# Set the working directory to the user's home directory
WORKDIR $HOME/app
# Copy the current directory contents into the container at $HOME/app setting the owner to the user
COPY --chown=user . $HOME/app
CMD ["python", "app.py"] |