|
|
|
ARG FUNCTION_DIR="" |
|
|
|
|
|
FROM public.ecr.aws/docker/library/python:3.11.9-slim-bookworm AS builder |
|
|
|
|
|
RUN apt-get update \ |
|
&& apt-get clean \ |
|
&& g++ \ |
|
&& make \ |
|
&& cmake \ |
|
&& unzip \ |
|
&& libcurl4-openssl-dev \ |
|
&& 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 |
|
|
|
|
|
COPY lambda_entrypoint.py . |
|
|
|
|
|
FROM public.ecr.aws/docker/library/python:3.11.9-slim-bookworm |
|
|
|
|
|
COPY --from=public.ecr.aws/awsguru/aws-lambda-adapter:0.8.4 /lambda-adapter /opt/extensions/lambda-adapter |
|
|
|
|
|
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/* |
|
|
|
|
|
RUN useradd -m -u 1000 user |
|
|
|
|
|
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 --from=builder /install /usr/local/lib/python3.11/site-packages/ |
|
|
|
|
|
USER user |
|
|
|
|
|
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 |
|
|
|
|
|
WORKDIR $HOME/app |
|
|
|
|
|
COPY --chown=user . $HOME/app |
|
|
|
|
|
ENTRYPOINT ["python", "-u", "lambda_entrypoint.py"] |
|
|
|
|