Spaces:
Sleeping
Sleeping
File size: 2,290 Bytes
01c88c0 641ff3e 37d982e 641ff3e 01c88c0 619a281 e5dfae7 01c88c0 a3ba5e2 01c88c0 641ff3e 71761cb 641ff3e d32c12a 01c88c0 641ff3e 71761cb 641ff3e 43287c3 641ff3e 01c88c0 641ff3e 01c88c0 641ff3e 85a7cbf 71761cb 641ff3e dce6100 641ff3e 71761cb 641ff3e e5dfae7 |
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 67 68 69 70 71 72 73 74 |
# Stage 1: Build dependencies and download models
FROM public.ecr.aws/docker/library/python:3.11.9-slim-bookworm AS builder
# Install system dependencies. Need to specify -y for poppler to get it to install
RUN apt-get update \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src
COPY requirements.txt .
RUN pip install --no-cache-dir --target=/install -r requirements.txt
RUN rm requirements.txt
# Add lambda_entrypoint.py to the container
COPY lambda_entrypoint.py .
# Stage 2: Final runtime image
FROM public.ecr.aws/docker/library/python:3.11.9-slim-bookworm
# Install Lambda web adapter in case you want to run with with an AWS Lamba function URL (not essential if not using Lambda)
COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.8.4 /lambda-adapter /opt/extensions/lambda-adapter
# Install system dependencies. Need to specify -y for poppler to get it to install
RUN apt-get update \
&& apt-get install -y \
tesseract-ocr \
poppler-utils \
libgl1-mesa-glx \
libglib2.0-0 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Set up a new user named "user" with user ID 1000
RUN useradd -m -u 1000 user
# Make output folder
RUN mkdir -p /home/user/app/output \
&& mkdir -p /home/user/app/tld \
&& mkdir -p /home/user/app/logs \
&& chown -R user:user /home/user/app
# Copy installed packages from builder stage
COPY --from=builder /install /usr/local/lib/python3.11/site-packages/
# Switch to the "user" user
USER user
# Set environmental variables
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH \
PYTHONPATH=/home/user/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 \
TLDEXTRACT_CACHE=$HOME/app/tld/.tld_set_snapshot \
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
# Keep the default entrypoint as flexible
ENTRYPOINT ["python", "-u", "entrypoint_router.py"]
#CMD ["python", "app.py"] |