File size: 1,750 Bytes
bffbd2b
641ff3e
37d982e
641ff3e
 
b723aad
37d982e
bffbd2b
 
641ff3e
 
 
 
 
 
 
452d304
619a281
452d304
641ff3e
 
71761cb
641ff3e
 
 
 
d32c12a
 
dce6100
641ff3e
 
71761cb
641ff3e
43287c3
641ff3e
 
 
 
 
 
85a7cbf
71761cb
641ff3e
dce6100
641ff3e
 
43287c3
 
641ff3e
 
 
 
 
 
71761cb
 
641ff3e
 
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
FROM public.ecr.aws/docker/library/python:3.11.9-slim-bookworm

# Install system dependencies. Need to specify -y for poppler to get it to install
RUN apt-get update \
    && apt-get install -y \
        tesseract-ocr -y \
        poppler-utils -y \
		libgl1-mesa-glx -y \
		libglib2.0-0 -y \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /src

COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt

RUN pip install --no-cache-dir gradio==4.31.0 

# 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

# Make output folder
RUN mkdir -p /home/user/app/output && chown -R user:user /home/user/app/output
RUN mkdir -p /home/user/app/tld && chown -R user:user /home/user/app/tld

# Switch to the "user" user
USER user

# Set environmental variables
ENV HOME=/home/user \
	PATH=/home/user/.local/bin:$PATH \
    PYTHONPATH=$HOME/app \
	PYTHONUNBUFFERED=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 \
	#GRADIO_TEMP_DIR=$HOME/tmp \
	#GRADIO_ROOT_PATH=/address-match \
	# gunicorn keep alive timeout limit extended for GUI-based work - https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker?tab=readme-ov-file#timeout
	KEEP_ALIVE=60 \
	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
#COPY . $HOME/app

CMD ["python", "app.py"]